Serie RHCE que implementa HTTP a través de TLS utilizando el Servicio de Seguridad de Network (NSS) para Apache - Parte 8
- 821
- 71
- Alejandro Duran
Si usted es un administrador del sistema que se encarga de mantener y asegurar un servidor web, no puede permitirse no dedicar sus mejores esfuerzos para garantizar que los datos atendidos o atravesados por su servidor estén protegidos en todo momento.
Serie RHCE: Implementación de HTTPS a través de TLS utilizando el Servicio de Seguridad de Red (NSS) para Apache - Parte 8Para proporcionar comunicaciones más seguras entre clientes web y servidores, el Https El protocolo nació como una combinación de Http y Ssl (Asegurar la capa de enchufes) o más recientemente, TLS (Transport Layer Security).
Debido a algunas infracciones de seguridad graves, Ssl ha sido desaprobado a favor de los más robustos TLS. Por esa razón, en este artículo explicaremos cómo asegurar las conexiones entre su servidor web y los clientes utilizando TLS.
Este tutorial supone que ya ha instalado y configurado su servidor web Apache. Si no, consulte el siguiente artículo en este sitio antes de continuar.
- Instale la lámpara (Linux, MySQL/Mariadb, Apache y PHP) en Rhel/Centos 7
Instalación de OpenSSL y utilidades
En primer lugar, asegúrese de que apache está corriendo y que ambos http y https están permitidos a través del firewall:
# SystemCTL Start Http # SystemCtl Habilitar http # firewall-cmd --Permanent --add-service = http # firewall-cmd --permanent --add-service = https
Luego instale los paquetes necesarios:
# Yum Update && Yum install OpenSSL Mod_nss Crypto-Utils
Importante: Tenga en cuenta que puede reemplazar mod_nss con mod_ssl En el comando anterior si quieres usar Openssl bibliotecas en lugar de NSS (Servicio de seguridad de red) para implementar TLS (¿Cuál se debe a usted completamente a usted, pero usaremos NSS en este artículo, ya que es más robusto; por ejemplo, admite estándares de criptografía recientes como PKCS #11).
Finalmente, desinstalar mod_ssl Si eliges usar mod_nss, o viceversa.
# yum eliminar mod_ssl
Configuración de NSS (servicio de seguridad de red)
Después mod_nss está instalado, su archivo de configuración predeterminado se crea como /etc/httpd/conf.D/NSS.confusión. Entonces debes asegurarte de que todo el Escuchar y Anfitrión virtual Las directivas apuntan al puerto 443 (puerto predeterminado para https):
NSS.File de configuración conf -Escucha 443 VirtualHost _default_: 443
Luego reiniciar apache y verifique si el mod_nss El módulo ha sido cargado:
# apachectl reiniciar # httpd -m | Grep NSSVerifique el módulo MOD_NSS cargado en Apache
A continuación, se deben realizar las siguientes ediciones en /etc/httpd/conf.D/NSS.confusión
archivo de configuración:
1. Indicar directorio de base de datos NSS. Puede usar el directorio predeterminado o crear uno nuevo. En este tutorial usaremos el valor predeterminado:
NsscertificatedAtabase/etc/httpd/alias
2. Evite la entrada manual de frase de pases en cada sistema iniciar guardando la contraseña en el directorio de la base de datos en /etc/httpd/nss-db-password.confusión:
Archivo nsspassphrassialog:/etc/httpd/nss-db-password.confusión
Dónde /etc/httpd/nss-db-password.confusión contiene solo la siguiente línea y mi contraseña es la contraseña que establecerá más adelante para la base de datos NSS:
Interno: MyPassword
Además, sus permisos y propiedad deben establecerse en 0640 y Root: Apache, respectivamente:
# Chmod 640/etc/httpd/nss-db-password.conf # chgrp apache/etc/httpd/nss-db-password.confusión
3. Red Hat recomienda deshabilitar Ssl y todas las versiones de TLS anterior a TLSV1.0 debido a la Poodle SSLV3 vulnerabilidad (más información aquí).
Asegúrese de que cada instancia del Nssprotocol La directiva lee de la siguiente manera (es probable que encuentre solo uno si no está alojando otros hosts virtuales):
Nssprotocol tlsv1.0, TLSV1.1
4. Apache se negará a reiniciar, ya que este es un certificado autofirmado y no reconocerá al emisor como válido. Por esta razón, en este caso particular tendrá que agregar:
Nssenforcevalidcerts
5. Aunque no se requiere estrictamente, es importante establecer una contraseña para la base de datos NSS:
# certutil -w -d/etc/httpd/aliasEstablecer contraseña para páginas de base de datos NSS: 1 2
- « Uso de DSH (shell distribuido) para ejecutar comandos de Linux en múltiples máquinas
- 8 interesantes consejos y trucos del editor 'VI/VIM' para cada administrador de Linux - Parte 2 »