Serie RHCE que implementa HTTP a través de TLS utilizando el Servicio de Seguridad de Network (NSS) para Apache - Parte 8

Serie RHCE que implementa HTTP a través de TLS utilizando el Servicio de Seguridad de Network (NSS) para Apache - Parte 8

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 8

Para 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.

  1. 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 NSS 
Verifique 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/alias 
Establecer contraseña para páginas de base de datos NSS: 1 2