Cómo instalar un certificado SSL en Apache para CentOS 7
Introducción
Los certificados SSL son pequeños archivos de datos que certifican la propiedad de una clave criptográfica pública. Las entidades de certificación (CA) garantizan que la clave pertenece a una organización, servidor u otra entidad que figure en el certificado.
Cuando un usuario, a través de su navegador, accede a un sitio web certificado, la información se encripta con una clave pública única. Los datos solo se pueden descifrar utilizando una clave privada única ubicada en el servidor host. Este alto nivel de cifrado evita intentos no autorizados de acceder a la información.
En este tutorial, aprenda a instalar un certificado SSL en CentOS 7.
Requisitos previos
- Un usuario con privilegios sudo
- Acceso a una línea de comandos (Ctrl-Alt-T)
- Una máquina CentOS 7
- Un nombre de dominio válido con DNS apuntando al servidor
Cómo obtener un certificado SSL
Certificados:
- Usando una autoridad de certificación automatizada y gratuita, como el proyecto Let’s Encrypt.
- Las autoridades de certificación comerciales proporcionan certificados por una tarifa (Comodo, DigiCert, GoDaddy)
- Alternativamente, es posible crear un certificado autofirmado. Este tipo de certificado es útil para fines de prueba o para su uso en un entorno de desarrollo.
Si todavía está considerando qué tipo de certificado necesita o qué CA elegir, hemos preparado una guía completa de certificados SSL, claves privadas y CSR para ayudarlo en el proceso.
Nota: Las CA de confianza no verifican los certificados autofirmados. Los usuarios no pueden usarlo para validar la identidad de su servidor automáticamente.
Instalar certificado SSL con Let’s Encrypt
Let’s Encrypt es una autoridad de certificación gratuita, abierta y automatizada. Utiliza la herramienta de software certbot para administrar certificados automáticamente.
Certbot es una herramienta altamente automatizada. Asegúrese de que su instalación de Apache es válida y de que tiene un host virtual configurado para sus dominios. Primero debe leer nuestro tutorial sobre cómo instalar Apache en CentOS 7 si necesita ayuda para configurar su firewall y hosts virtuales.
Instalación de Certbot
1. Utilice el terminal de comandos para instalar el repositorio EPEL y yum-utils:
sudo yum –y install epel-release yum-utils
2. A continuación, instale un módulo que admita SSL para Apache:
sudo yum -y install mod_ssl
En este ejemplo, la última versión del módulo ya está disponible.
3. Ahora podemos instalar certbot para Apache:
sudo yum –y install python-certbot-apache
4. Una vez que la instalación siga su curso, puede iniciar el proceso para obtener un certificado ingresando:
sudo certbot –apache –d yourdomain.com
Como alternativa, inicie certbot escribiendo:
sudo certbot
5. El cliente le pide que proporcione una dirección de correo electrónico y que lea y acepte los Términos de Servicio. Certbot luego enumera los dominios disponibles en su servidor. Active HTTPS para dominios específicos o todos ellos dejando el campo en blanco.
El siguiente mensaje le permite forzar todas las solicitudes para asegurar el acceso HTTPS.
Una vez que haya hecho sus elecciones, el mensaje en el terminal confirma que ha habilitado el cifrado para su dominio.
Renovación automática de certificados
Los certificados emitidos por Let’s Encrypt tienen una validez de 90 días. El comando certbot renew comprueba los certificados instalados e intenta renovarlos si faltan menos de 30 días para su vencimiento. Para automatizar este proceso, cree un trabajo cron para ejecutar el comando periódicamente.
Utilice su editor de texto preferido para definir con qué frecuencia ejecutar el comando renovar:
sudo crontab -e
Ingrese esta línea y guarde el crontab:
* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1
Cómo instalar el certificado SSL con Comodo
1. El primer paso es presentar una Solicitud de Firma de certificado a una Autoridad de Certificación. Nuestra guía detallada sobre cómo generar una solicitud de firma de certificado (CSR) con OpenSSL es un recurso excelente si necesita ayuda con este proceso.
2. Una vez que una CA certifique su solicitud, recibirá una copia de su certificado SSL. Ahora puede instalar el certificado en su servidor CentOS 7.
Este ejemplo muestra cómo instalar un certificado de un proveedor SSL de pago, Comodo.
3. Una vez que Comodo verifique su solicitud de CSR, descargue los archivos SSL. Cópialos (ComodoRSACA.crt) y el Certificado Principal (su dominio.crt), al directorio del servidor Apache. La clave privada generada durante el proceso CSR (Solicitud de firma de certificado) debe estar en el mismo servidor.
Configurar Hosts virtuales para SSL
Después de que haya certificado correctamente el dominio y colocado los archivos de clave en el servidor, el siguiente paso será configurar los hosts virtuales para mostrar el certificado.
1. Acceder al archivo de configuración SSL:
sudo nano /etc/httpd/conf.d/ssl.conf
2. Edite el archivo de configuración para que apunte a los archivos correctos de su servidor.
Descomentar las siguientes líneas en la sección <VirtualHost_default_:443> y escribe correctamente las rutas de archivo:
- DocumentRoot «/var/www/dominio.com»
- ServerName yourdomain.com: 443
- SSLEngine on
- SSLCertificateFile: La ruta de acceso del archivo de certificado.
- SSLCertificateKeyFile – La ruta de acceso de su archivo de clave.
- SSLCertificateChainFile – El archivo de certificado COMODO intermedio.
3. Después de realizar los cambios necesarios, salga del archivo (Ctrl+X) y presione y para guardar los cambios.
4. Pruebe su configuración de Apache antes de reiniciar. Asegúrese de que la sintaxis es correcta escribiendo:
sudo apachectl configtest
5. Una vez que el sistema confirme que la sintaxis es correcta, reinicie Apache:
sudo systemctl restart httpd
Ahora ha configurado su servidor Apache para usar el certificado SSL.
Cómo crear un certificado SSL autofirmado
Un certificado autofirmado es útil para pruebas, en entornos de desarrollo y en una intranet.
1. Al igual que con Let’s Encrypt, el módulo Apache mod_ssl proporciona soporte para el cifrado SSL:
sudo yum –y install mod_ssl
2. Crear un nuevo directorio para almacenar la clave privada:
sudo mkdir /etc/ssl/privatekey
3. Restringir el acceso a ese directorio solo al usuario root:
sudo chmod 700 /etc/ssl/privatekey
4. Generar un certificado autofirmado con este comando OpenSSL:
sudo openssl req -x509 -new -newkey rsa:2048 -nodes -days 365 -keyout /etc/ssl/privatekey/ yourdomain.key -out /etc/ssl/certs/yourdomain.csr
Esta es una descripción detallada de los elementos:
- openssl-activa el software de OpenSSL
- req-indica que necesitamos una CSR
- – x509-especifica para usar la solicitud de firma X. 509
- – nueva-nueva llave-genera una nueva clave
- rsa:2048-generar una clave matemática RSA de 2048 bits
- – nodos-sin DES, lo que significa no cifrar la clave privada en un archivo PKCS#12
- – días 365-número de días en que el certificado es válido para
- – salida de clave-indica el dominio para el que está generando una clave
- – salida-especifica el nombre del archivo que contiene la CSR
Nota: Asegúrate de reemplazar tu dominio por tu dominio real.
5. El sistema lanza un cuestionario para que lo rellene.
Introduzca su información en los campos disponibles:
- Nombre del país: use un código de país de 2 letras
- Estado: el estado donde el propietario del dominio está incorporado en
- Localidad: la ciudad donde el propietario del dominio está incorporado en
- Nombre de la organización: una entidad que posee el dominio
- Nombre común: la mayoría de las veces, el nombre de dominio completo (FQDN)
- Dirección de correo electrónico: dirección de correo electrónico de contacto
- Contraseña de desafío: defina una contraseña opcional para su par de claves
La imagen representa un cuestionario de ejemplo en CentOS 7.
6. Proceda a configurar el host virtual para que muestre el nuevo certificado. El proceso es idéntico a los pasos descritos en el Capítulo 2, Configurar Hosts virtuales para SSL.
7. Pruebe su configuración de Apache antes de reiniciar. Para asegurarse de que la sintaxis es correcta, escriba:
sudo apachectl configtest
8. Una vez que el sistema confirme que la sintaxis es correcta, reinicie Apache:
sudo systemctl restart httpd
Ahora ha configurado su servidor Apache para usar su certificado SSL autofirmado y debería poder visitar su sitio con SSL habilitado.
¿Cómo Comprobar si un Certificado SSL es válido?
Para comprobar si un certificado SSL es válido, puede disponer de servicios públicos, como la prueba del servidor SSL. Confirme el estado de su certificado y compruebe si todos los detalles son correctos.
Alternativamente, acceda a su sitio web utilizando https:// para ver si el certificado SSL está visible. El candado verde indica que la capa adicional de cifrado está presente.
Conclusión
Siguiendo estas instrucciones, ha asegurado el tráfico en su sitio web de distribución CentOS Linux mediante la implementación de un certificado SSL.
Su nuevo certificado SSL garantiza que todos los datos que pasan entre el servidor web y los navegadores permanezcan privados y seguros.