Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial
ApacheSSLSeguridadCifradoHTTPSConfiguraciónServidor WebCertificadosRedesTIConfiguraciónDesarrollo
Traducción actualizada 2 Hace unas semanas
Secure Socket Layer (SSL) es una tecnología estándar de seguridad para establecer un enlace cifrado entre un servidor y un cliente. En el contexto del uso de Internet, esto generalmente significa un servidor web (como Apache) y un navegador. SSL asegura que todos los datos pasados entre el servidor web y el navegador permanezcan privados e íntegros.
Apache es uno de los servidores web más populares del mundo, y configurarlo para usar SSL/TLS permite que su sitio web traslade datos a través de un canal seguro. Esta guía le presentará el proceso de configurar SSL en un servidor Apache que se ejecuta en un sistema basado en Unix, como Linux.
Antes de profundizar en la configuración de SSL para Apache, asegúrese de tener lo siguiente:
Primero, asegúrese de que Apache esté instalado en su servidor y que el módulo SSL esté habilitado. Puede instalar Apache usando el gestor de paquetes que utiliza su distribución. Por ejemplo, en Ubuntu:
sudo apt update sudo apt install apache2
También necesita instalar el módulo mod_ssl
. Puede hacerlo así:
sudo a2enmod ssl
Necesita un certificado para que SSL funcione. Puede comprar uno de una autoridad certificadora (CA) o crear un certificado autofirmado. Si está configurando SSL para propósitos internos de prueba, un certificado autofirmado es suficiente. Así es como se crea un certificado autofirmado:
sudo mkdir /etc/apache2/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Analicemos este comando:
sudo mkdir /etc/apache2/ssl
: Crea un directorio para almacenar su certificado SSL y la clave.openssl req -x509 -nodes -days 365
: Crea un nuevo certificado que es válido por 365 días.-newkey rsa:2048
: Utiliza RSA con un tamaño de clave de 2048 bits.-keyout
: Especifica dónde guardar la clave privada.-out
: Especifica dónde guardar el archivo de certificado.Ahora que tiene su certificado SSL y la clave, necesita configurar Apache para utilizarlos. Abra su archivo de configuración de Apache, que generalmente se encuentra en /etc/apache2/sites-available/default-ssl.conf
. Puede usar un editor de texto como nano o vi :
sudo nano /etc/apache2/sites-available/default-ssl.conf
Encuentre las siguientes líneas en el archivo de configuración:
SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key
Reemplace esto con la ruta de su certificado y clave:
SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key
También necesita asegurarse de que el anfitrión virtual de Apache escucha en el puerto 443 (el estándar para HTTPS). Debe verse algo así:
<VirtualHost *:443> ServerAdmin webmaster@your_domain.com ServerName your_domain.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key <Directory /var/www/html> AllowOverride All </Directory> </VirtualHost>
Una vez que haya modificado default-ssl.conf
, necesitará habilitar SSL en el sitio con el siguiente comando:
sudo a2ensite default-ssl
Después de habilitar el sitio, necesitará reiniciar Apache para aplicar los cambios:
sudo systemctl restart apache2
Ahora debería probar su configuración para verificar que SSL esté funcionando. Abra un navegador web e intente acceder a su dominio con el prefijo https://
, por ejemplo, https://your_domain.com
. Debería ver un indicador de conexión segura, generalmente un ícono de candado en la barra de direcciones.
Si está interesado en certificados SSL gratuitos, considere usar Let's Encrypt. Es una autoridad certificadora sin fines de lucro que ofrece certificados gratuitos para uso personal o comercial. También ofrecen una herramienta llamada Certbot
que automatiza el proceso de obtención y renovación de certificados. Puede instalar Certbot y usarlo para configurar automáticamente HTTPS para la mayoría de las configuraciones de Apache.
Los certificados SSL son válidos por un cierto período de tiempo, usualmente un año. Debe renovar su certificado antes de que expire para mantener una conexión segura. Si está utilizando un certificado autofirmado para pruebas, use el comando anterior para crear un nuevo certificado. Para certificados comerciales, preste atención a las comunicaciones de su autoridad certificadora sobre cómo renovarlo antes del vencimiento.
Además de la configuración básica de SSL, considere implementar medidas de seguridad adicionales:
SSLv2
, SSLv3
) y TLS (TLSv1.0
, TLSv1.1
) para evitar vulnerabilidades.Configurar SSL en Apache es un paso esencial para proporcionar una interacción segura entre su servidor web y el navegador del cliente. Siguiendo las instrucciones paso a paso arriba, desde la instalación de Apache y su módulo SSL hasta configurar su servidor con un certificado autofirmado, puede garantizar una comunicación segura entre el servidor y el cliente. Esta guía ofrece una visión general de los pasos necesarios y consideraciones adicionales para aumentar la seguridad de su servidor.
Recuerde investigar más sobre prácticas de seguridad específicas y directrices que puedan relacionarse con su caso de uso específico o estándares de la industria.
Si encuentras algo incorrecto en el contenido del artículo, puedes