Instale un certificado SSL en Apache Mod_SSL

Configurando Apache con SSL

Las siguientes instrucciones asumen que desea ejecutar un servidor seguro (en el puerto 443) y un servidor regular (en el puerto 80). Primero, debe configurar el servidor para escuchar en ambos puertos. Cualquiera editar /etc/apache2/ports.conf (en Debian; esto está incluido en apache2.conf) o editar /etc/apache2/apache2.conf directamente para incluir las líneas:

Escuchar 80 Escuchar 443

Siguiente, editar /etc/apache2/sites-enabled/yoursite para usar la configuración SSL. Separar la configuración del servidor regular y segura mediante VirtualHosts es la opción más fácil en términos de mantenibilidad. Cualquier configuración fuera de las secciones de VirtualHosts (como configurar ServerAdmin) se aplicará a ambos (y a cualquier otro) VirtualHosts.

Nota: A partir de Apache 2.4.8, la práctica de mantener el certificado del servidor y la cadena de certificados intermedia en archivos separados ha quedado en desuso. Tanto los métodos actuales como los heredados se detallan en las pestañas en las que se puede hacer clic a continuación.
Apache 2.4.8 o superiorApache 2.4.7 o inferior

Las versiones de Apache 2.4.8 y superiores esperan que su certificado de servidor se concatene con cualquier certificado intermedio en un archivo. Para descargar un archivo encadenado de SSL.com, elija el Nginx Enlace de descarga en su cuenta del portal:

Nginx

Alternativamente, puede concatenar su certificado existente y archivos intermedios con un comando como el siguiente:

$ gato /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Agregue la siguiente sección a su archivo de configuración:

# =============================================== # SSL /TLS configuración # ============================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine en SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Algunas notas sobre esta configuración:

  • SSLEngine debe estar habilitado para que el servidor use SSL.
  • DocumentRoot establece el directorio raíz para este host virtual. Esto significa que puede separar el contenido seguro por completo del contenido normal.
  • SSLCertificateFile debe establecerse en la ubicación donde coloca el archivo con el certificado del servidor y la cadena intermedia.
  • SSLCertificateKeyFile debe establecerse en la ubicación donde coloca su archivo de clave privada.

Agregue la siguiente sección a su archivo de configuración:

# =============================================== # SSL /TLS configuración # ============================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine en SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / private / ca- client.crt

Algunas notas sobre esta configuración:

  • SSLEngine debe estar habilitado para que el servidor use SSL.
  • DocumentRoot establece el directorio raíz para este host virtual. Esto significa que puede separar el contenido seguro por completo del contenido normal.
  • SSLCertificateFile, SSLCertificateChainFile, y SSLCertificateKeyFile debe establecerse en las ubicaciones donde coloca su certificado, archivos de clave intermedia y privada, respectivamente.

Para ejecutar el servidor normal en el puerto 80, agregue la siguiente sección al archivo de configuración:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Configuración del directorio específico del host, opciones, etc. # Es probable que la mayoría de estas opciones se establezcan fuera de las secciones de VirtualHosts #.

Una vez que haya guardado el archivo de configuración editado, reinicie el servidor web. Si usó una frase de contraseña al generar su certificado, deberá ingresarla cuando se le cuestione.

Pruebas

Cree una página index.html básica donde se encuentre el directorio raíz de su servidor web, si aún no tiene contenido allí.

Luego apunte su navegador web a https://www.yoursite.com. Debería ver una conexión SSL abierta y la página entregada. Si está utilizando un certificado autofirmado, su navegador mostrará una alerta advirtiéndole que no se puede verificar la identidad del servidor. Puede elegir ver y aceptar el certificado. Si usa un certificado externo, todo debería suceder sin intervención.

Asegúrese también de que no puede acceder al contenido protegido mediante http: //. Si lo intenta, debería recibir un mensaje de error.

Solucionando Problemas

Si no funciona como se esperaba, primero verifique que su servidor esté funcionando, usando ps -a | grep apache. Si eso no devuelve nada, intente reiniciarlo y verifique si hay mensajes de error en el terminal.

También verifique que los permisos en su clave y archivos de certificado estén configurados correctamente (ver arriba), así como los permisos en su archivo HTML de prueba y su directorio padre.

A continuación, revise los registros. Debe verificar tanto los registros del servidor principal como los registros SSL que configuró en su archivo de configuración anterior. Si no obtiene nada útil, intente cambiar el valor de LogLevel en el archivo de configuración de Apache2 a "depurar", reinicie Apache2 y pruebe nuevamente. Esto debería proporcionar más datos del archivo de registro.

Si también está ejecutando un servidor web normal en el puerto 80, intente obtener una página de prueba a través de http: // en lugar de https: // para ayudar a identificar si el problema está en el servidor web o en la conexión SSL. Tenga en cuenta que en la configuración anterior, el directorio raíz del servidor web es diferente para http: // y https: //, por lo que no podrá (¡o no debería!) Acceder al mismo contenido. Sin embargo, si su página de prueba en el directorio raíz http: // funciona bien, y su página de prueba en el directorio raíz https: // no, entonces eso puede ayudarlo a identificar el problema.

Si el problema es la conexión SSL, una herramienta útil es s_client, que es una herramienta de diagnóstico para solucionar problemas TLS/ Conexiones SSL. El uso básico es: /usr/bin/openssl s_client -connect localhost:443. También hay muchas otras opciones, para las cuales puede consultar la documentación. Si recibe mensajes de error, esto debería ayudarlo a localizar el problema.

¡Gracias por elegir SSL.com! Si tiene alguna pregunta, comuníquese con nosotros por correo electrónico a Support@SSL.com, llamada 1-877-SSL-SECURE, o simplemente haga clic en el enlace de chat en la parte inferior derecha de esta página.

Suscríbase al boletín de SSL.com

No te pierdas los nuevos artículos y actualizaciones de SSL.com

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.