Búsqueda de sitios web

Cómo crear claves y certificados SSL autofirmados para Apache en RHEL/CentOS 7.0


SSL (Secure Sockets Layer) es un protocolo criptográfico que permite el flujo de datos seguro entre un servidor y sus clientes utilizando claves simétricas/asimétricas mediante el uso de un certificado digital firmado por una Autoridad Certificadora. (CALIFORNIA).

Requisitos

  1. Instalación básica de LAMP en RHEL/CentOS 7.0

Este tutorial proporciona un enfoque sobre cómo configurar el protocolo criptográfico de comunicación Secure Sockets Layer (SSL) en el servidor web Apache instalado en Red Hat Enterprise Linux/CentOS 7.0< y generar certificados y claves autofirmados con la ayuda de un script bash que simplifica enormemente todo el proceso.

Paso 1: instalar y configurar Apache SSL

1. Para habilitar SSL en el servidor HTTP Apache, utilice el siguiente comando para instalar el módulo SSL y el kit de herramientas OpenSSL, que es necesario para la compatibilidad con SSL/TLS.

yum install mod_ssl openssl

2. Después de instalar el módulo SSL, reinicie el demonio HTTPD y agregue una nueva regla de firewall para garantizar que el puerto SSL, 443, esté abierto a conexiones externas en su máquina en estado de escucha.

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Para probar la conexión SSL, abra un navegador remoto y navegue hasta la dirección IP de su servidor utilizando el protocolo HTPS en https://server_IP.

Paso 2: cree certificados y claves SSL

4. La comunicación SSL anterior entre el servidor y el cliente se realizó utilizando un certificado y una clave predeterminados generados automáticamente durante la instalación. Para generar nuevas claves privadas y pares de certificados autofirmados, cree el siguiente script bash en una ruta ejecutable del sistema (` PATH).

Para este tutorial se eligió la ruta /usr/local/bin/, asegúrese de que el script tenga configurado el bit ejecutable y, luego, utilícelo como comando para crear nuevos pares SSL en /etc/ httpd/ssl/ como ubicación predeterminada de certificados y claves.

nano /usr/local/bin/apache_ssl

Utilice el siguiente contenido de archivo.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Ahora haga que este script sea ejecutable y ejecútelo para generar un nuevo par de certificado y clave para su host virtual Apache SSL.

Rellénelo con su información y preste atención al valor Nombre común para que coincida con el FQDN de su servidor o, en el caso de Virtual Hosting, para que coincida con la dirección web a la que accederá cuando se conecte a un sitio web seguro.

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. Después de generar el certificado y la clave, el script presentará una lista larga de todos sus pares SSL de Apache almacenados en la ubicación /etc/httpd/ssl/.

7. Otro enfoque para generar certificados y claves SSL es instalar el paquete crypto-utils en su sistema y generar pares usando el comando genkey, que puede impone algunos problemas, especialmente cuando se usa en una pantalla de terminal Putty.

Por lo tanto, sugiero utilizar este método sólo cuando esté conectado directamente a un monitor de pantalla.

yum install crypto-utils
genkey your_FQDN

8. Para agregar el nuevo Certificado y Clave a su sitio web SSL, abra el archivo de configuración de su sitio web y reemplace las declaraciones SSLCertificateFile y SSLCertificateKeyFile con los nuevos pares. ubicación y nombres en consecuencia.

9. Si el certificado no es emitido por una CA confiable – Autoridad de certificación o el nombre de host del certificado no coincide con el nombre de host que establece la conexión, debería aparecer un error en su navegador y deberá aceptar manualmente el certificado.

¡Eso es todo! Ahora puede usar apache_ssl como línea de comando en RHEL/CentOS 7.0 para generar tantos pares de certificados y claves autofirmados como necesite, y todos se guardarán en /etc/httpd/ ruta ssl/ con el archivo clave protegido con permisos 700.