En esta guia, aprenderas como instalar un certificado SSL en Apache, paso a paso. Las instrucciones se aplican a Apache 2.4, la linea de version estable actual.
Tabla de contenidos
- ¿Como generar un codigo CSR en Apache?
- Instalar un certificado SSL en Apache
- Probar la instalacion SSL
- ¿Donde comprar un certificado SSL para Apache?
¿Como generar un codigo CSR en Apache?
La Solicitud de Firma de Certificado, o simplemente CSR, es un pequeno archivo de texto que contiene informacion sobre la propiedad de tu dominio y/o empresa. Generar un CSR es una parte integral del proceso de compra de SSL, y todas las Autoridades de Certificacion comerciales exigen que los solicitantes de SSL completen este paso.
Tienes dos opciones:
- Generar el CSR automaticamente usando nuestro Generador de CSR.
- Seguir nuestro tutorial paso a paso sobre como crear el CSR en Apache.
Instalar un certificado SSL en Apache
Una vez que la Autoridad de Certificacion firme y te envie el certificado SSL, podras instalarlo de forma segura en tu servidor Apache. Sigue los pasos a continuacion.
Paso 1: Prepara los archivos del certificado
Descarga y extrae los archivos de la carpeta ZIP que recibiste de tu Autoridad de Certificacion. Normalmente encontraras:
- El archivo .crt – tu certificado SSL principal.
- El archivo .ca-bundle – los certificados intermedios (y raiz) que forman la cadena de confianza. Esta cadena es necesaria para que los navegadores y aplicaciones puedan verificar tu certificado. Sin ella, algunos clientes pueden marcar tu sitio como no seguro.
Sube estos archivos, junto con la clave privada (.key) que generaste junto con tu CSR, a un directorio seguro en tu servidor, por ejemplo /etc/ssl/. Mantén la clave privada legible solo por root (chmod 600).
Recomendado (Apache 2.4.8 y versiones mas recientes): combina tu certificado y el paquete CA en un unico archivo de «cadena completa». Desde Apache 2.4.8, la directiva SSLCertificateFile carga los certificados intermedios directamente desde este archivo, razon por la cual la antigua directiva SSLCertificateChainFile ya no es necesaria:
cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt
Si tu CA entrego los certificados intermedios como archivos separados, concatenalos con tu certificado primero, seguidos de los intermedios ordenados desde el que firmo tu certificado hasta el raiz (el certificado raiz en si es opcional):
cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt
Por ejemplo, al instalar un certificado Sectigo PositiveSSL, concatenarias tu certificado de dominio con el paquete intermedio de Sectigo. Utiliza siempre los nombres de archivo exactos proporcionados por tu CA.
Paso 2: Habilita el modulo SSL (mod_ssl)
Antes de configurar HTTPS, asegurate de que el modulo SSL de Apache este habilitado.
En Debian/Ubuntu, habilita mod_ssl (y mod_headers, que necesitaras para el encabezado HSTS en el Paso 4):
sudo a2enmod ssl
sudo a2enmod headers
En RHEL/CentOS/AlmaLinux/Rocky Linux, instala el paquete del modulo SSL (el modulo se carga automaticamente una vez instalado):
sudo dnf install mod_ssl
Paso 3: Localiza el archivo de configuracion de Apache
Dependiendo de tu sistema operativo y version de Apache, la configuracion puede encontrarse en diferentes archivos. Busca httpd.conf, apache2.conf, o un archivo de configuracion SSL/sitio dedicado, en una de las siguientes ubicaciones:
- Debian/Ubuntu: configuracion principal /etc/apache2/apache2.conf; configuraciones por sitio en /etc/apache2/sites-available/.
- RHEL/CentOS/AlmaLinux/Rocky: configuracion principal /etc/httpd/conf/httpd.conf; configuracion SSL /etc/httpd/conf.d/ssl.conf.
Nota: Si tu servidor Apache se ejecuta en Ubuntu, tambien puedes seguir nuestras instrucciones de instalacion SSL dedicadas para Ubuntu.
Paso 4: Configura el host virtual
Primero, haz una copia de seguridad de tu archivo de configuracion actual. De esta forma, si algo sale mal, podras revertir rapidamente los cambios:
sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup
Ahora abre el archivo de configuracion y configura el host virtual HTTPS (puerto 443). Un host virtual completo y moderno tiene este aspecto:
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
SSLEngine on
# Apache 2.4.8+ : server certificate + intermediate chain in ONE file
SSLCertificateFile /etc/ssl/example_com_fullchain.crt
SSLCertificateKeyFile /etc/ssl/example_com.key
# Recommended TLS hardening (2026)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
# Tell browsers to always use HTTPS (enable only after HTTPS works)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
Reemplaza example.com, la raiz del documento y las rutas de los archivos con tus propios valores. Esto es lo que hacen las directivas clave:
- SSLEngine on – habilita SSL/TLS para este host virtual.
- SSLCertificateFile – ruta a tu archivo de cadena completa (certificado + intermedios) creado en el Paso 1. En Apache 2.4.8+ esta unica directiva reemplaza la obsoleta SSLCertificateChainFile.
- SSLCertificateKeyFile – ruta a tu clave privada, generada junto con el CSR.
- SSLProtocol -all +TLSv1.2 +TLSv1.3 – deshabilita los protocolos SSL/TLS antiguos e inseguros y permite unicamente TLS 1.2 y TLS 1.3.
- Strict-Transport-Security (HSTS) – indica a los navegadores que se conecten unicamente mediante HTTPS. Requiere mod_headers (habilitado en el Paso 2). Activalo solo despues de haber confirmado que HTTPS funciona correctamente.
Asegurate de que ninguna de estas lineas comience con # (lo que las comentaria). En Debian/Ubuntu, ${APACHE_LOG_DIR} se resuelve como /var/log/apache2; en sistemas basados en RHEL usa /var/log/httpd/ en su lugar.
Servidores antiguos: Si estas usando una version de Apache anterior a la 2.4.8, mantén el certificado y la cadena en archivos separados y agrega la directiva obsoleta SSLCertificateChainFile /etc/ssl/example_com.ca-bundle debajo de SSLCertificateFile. En cualquier servidor moderno, se prefiere el enfoque de cadena completa descrito anteriormente.
Refuerzo avanzado (opcional): para un conjunto de cifrado mas robusto y OCSP stapling, genera una configuracion personalizada con el Generador de Configuracion SSL de Mozilla. El OCSP stapling tambien requiere una directiva SSLStaplingCache en tu configuracion global de Apache.
Paso 5: Redirigir HTTP a HTTPS
Para asegurarte de que los visitantes siempre accedan a la version segura de tu sitio, agrega un segundo host virtual en el puerto 80 que redirija permanentemente todo el trafico HTTP a HTTPS:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
Paso 6: Prueba la configuracion y reinicia Apache
Prueba siempre la configuracion antes de reiniciar. Un error de sintaxis puede dejar tu sitio fuera de linea, por lo que debes ejecutar:
sudo apachectl configtest
Si todo es correcto, veras:
Syntax OK
Ahora aplica los cambios recargando Apache (una recarga activa la nueva configuracion sin interrumpir las conexiones existentes):
sudo systemctl reload apache2 # Debian/Ubuntu
sudo systemctl reload httpd # RHEL/CentOS/AlmaLinux/Rocky
Si una recarga no es suficiente, reinicia el servicio en su lugar (sudo systemctl restart apache2 o httpd). En sistemas mas antiguos sin systemd, usa sudo apachectl graceful.
Si la instalacion fue exitosa, ¡felicitaciones! Tu sitio web ahora esta protegido con SSL/TLS.
Probar la instalacion SSL
Despues de instalar tu certificado SSL en Apache, verifica que todo funcione correctamente. Un analisis instantaneo revelara cualquier error o vulnerabilidad que pueda afectar el rendimiento de tu certificado. Usa nuestra herramienta SSL Checker para comprobar el estado de tu instalacion.
Tambien puedes confirmar el certificado y su cadena directamente desde la linea de comandos:
openssl s_client -connect www.example.com:443 -servername www.example.com
¿Donde comprar un certificado SSL para Apache?
El mejor lugar para obtener un certificado SSL para Apache es SSL Dragon. Ofrecemos precios y descuentos inmejorables en toda nuestra gama de productos SSL, y hemos seleccionado cuidadosamente las mejores marcas de SSL del mercado para equipar tu sitio web con una proteccion a prueba de fallos. Todos nuestros certificados SSL son compatibles con Apache. ¡Obtén un certificado SSL ahora!
Ten en cuenta que la vida util de los certificados SSL/TLS se esta reduciendo: la validez maxima baja a 200 dias en marzo de 2026, a 100 dias en 2027 y a solo 47 dias en 2029. Los ciclos de vida mas cortos implican renovaciones mas frecuentes, por lo que vale la pena planificar con anticipacion el proceso de renovacion (y la automatizacion).
Preguntas frecuentes
SSL (Secure Sockets Layer), ahora reemplazado por TLS (Transport Layer Security), es un protocolo criptografico que cifra la comunicacion entre dos puntos finales de red, por ejemplo un servidor web como Apache y el navegador de un usuario.
En distribuciones Debian y Ubuntu, busca la directiva del protocolo SSL en la configuracion:grep -ir SSLProtocol /etc/apache2/
Si SSL esta configurado, veras una salida similar a:/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3
Tambien puedes confirmar que el modulo SSL esta cargado en el servidor en ejecucion:apachectl -M | grep ssl
El archivo de configuracion puede encontrarse en diferentes ubicaciones segun tu sistema operativo y configuracion. En Debian/Ubuntu, revisa /etc/apache2/apache2.conf y los archivos por sitio en /etc/apache2/sites-available/. En RHEL/CentOS/AlmaLinux/Rocky, revisa /etc/httpd/conf/httpd.conf y /etc/httpd/conf.d/ssl.conf.
SSLCertificateFile apunta a tu certificado de servidor. Desde Apache 2.4.8, el mismo archivo tambien puede contener los certificados intermedios, por lo que sirve la cadena completa. SSLCertificateChainFile era la forma antigua de suministrar esos intermedios por separado, pero ha sido deprecada desde Apache 2.4.8. En cualquier servidor moderno, coloca el certificado y los intermedios en un solo archivo y referencialo unicamente con SSLCertificateFile.
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10


