bg-tutorials

Cómo instalar un certificado SSL en un servidor Ubuntu (Apache)

En este tutorial, aprenderás cómo instalar un certificado SSL en Ubuntu con Apache.

También grabamos un video que te guía a través de todo el proceso. Si prefieres la versión de texto, sigue leyendo a continuación.

Generar un código CSR

Comenzaremos con la generación del CSR (Certificate Signing Request). Un CSR es una solicitud enviada a una Autoridad de Certificación para pedir un certificado digital. Tienes dos opciones:

Envía el CSR a la Autoridad de Certificación durante tu pedido. Después de que la CA lo valide y emita tu certificado SSL, continúa con la instalación a continuación.

Instalar un certificado SSL en Ubuntu Server

Paso 1: Sube tus archivos de certificado

Después de la validación, la Autoridad de Certificación te envía por correo electrónico los archivos del certificado. Extrae el archivo comprimido. Deberías tener:

  • yourdomain.crt, tu certificado SSL principal.
  • yourdomain.ca-bundle, los certificados intermedios (el paquete CA).
  • yourdomain.key, la clave privada que generaste con el CSR.

Sube el certificado y el paquete CA a /etc/ssl/ y la clave privada a /etc/ssl/private/ (mantén la clave legible solo por root). En Apache 2.4.8 y versiones más recientes (que incluyen todas las versiones de Ubuntu compatibles), combina el certificado y el paquete CA en un archivo de cadena completa:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

Paso 2: Habilita el módulo SSL y localiza la configuración de tu sitio

Habilita el módulo SSL de Apache (y el módulo headers, usado para HSTS en el Paso 3):

sudo a2enmod ssl
sudo a2enmod headers

El archivo de configuración de tu sitio se encuentra en /etc/apache2/sites-available/ (normalmente yourdomain.conf). Edita el archivo ahí. Los archivos en sites-enabled/ son solo enlaces simbólicos. Si el sitio aún no está habilitado, habilítalo con:

sudo a2ensite yourdomain.conf

Nota: sirve HTTP (puerto 80) y HTTPS (puerto 443) desde bloques VirtualHost separados. Las directivas SSL van en el de HTTPS.

Paso 3: Configura el VirtualHost de HTTPS

Configura el VirtualHost del puerto 443. Un bloque completo y moderno se ve así; ajusta las rutas para que coincidan con tus archivos:

<VirtualHost *:443>
    ServerName  www.yourdomain.com
    DocumentRoot /var/www/yourdomain

    SSLEngine on

    # Apache 2.4.8+ : certificado + paquete CA en un archivo de cadena completa
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    # Endurecimiento TLS recomendado (2026)
    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off

    # Habilita HSTS solo después de confirmar que HTTPS funciona
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>
  • SSLCertificateFile: tu archivo de cadena completa (certificado + intermedios). En Apache 2.4.8+ este reemplaza al obsoleto SSLCertificateChainFile.
  • SSLCertificateKeyFile: la clave privada que creaste con el CSR.

Apache heredado (anterior a 2.4.8): mantén el certificado y la cadena por separado y añade SSLCertificateChainFile /etc/ssl/yourdomain.ca-bundle, apuntando al paquete CA, no a tu archivo de certificado.

Paso 4: Redirige HTTP a HTTPS

Para que los visitantes siempre lleguen a la versión segura, añade un VirtualHost en el puerto 80 que redirija a HTTPS:

<VirtualHost *:80>
    ServerName www.yourdomain.com
    Redirect permanent / https://www.yourdomain.com/
</VirtualHost>

Paso 5: Prueba la configuración

Siempre prueba antes de recargar; un error de sintaxis puede dejar el sitio fuera de línea:

sudo apache2ctl configtest

Deberías ver Syntax OK. Si obtienes un error, revisa los pasos anteriores antes de continuar.

Paso 6: Recarga Apache

Aplica los cambios recargando Apache (una recarga activa la nueva configuración sin interrumpir las conexiones):

sudo systemctl reload apache2

Felicidades, tu certificado SSL ya está instalado en tu servidor Ubuntu. Para verificar el resultado y obtener un informe de estado instantáneo, usa nuestro SSL Checker.

¿Dónde comprar un certificado SSL para Ubuntu Server?

SSL Dragon es tu fuente para todas tus necesidades de SSL. Ofrecemos algunos de los precios más bajos del mercado en toda nuestra gama de productos SSL, y nos hemos asociado con las mejores marcas SSL de la industria para brindar una seguridad sólida y soporte dedicado. Todos nuestros certificados SSL son compatibles con servidores Ubuntu.

Preguntas frecuentes

¿Cómo sé si un certificado SSL está instalado en Ubuntu?

Conéctate a tu sitio con OpenSSL y lee el certificado que este proporciona:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Si hay un certificado instalado, esto mostrará su emisor y fechas de validez. También puedes listar los hosts virtuales activos de Apache con sudo apache2ctl -S, o simplemente abrir tu sitio en un navegador y comprobar el candado.

¿Dónde coloco el certificado SSL en Ubuntu?

Por convención, los certificados van en /etc/ssl/certs/ (o /etc/ssl/) y las claves privadas en /etc/ssl/private/. Estos son valores predeterminados; puedes usar otras ubicaciones siempre que tu VirtualHost apunte a ellas.

¿Dónde se encuentra la configuración del sitio de Apache en Ubuntu?

Los archivos de configuración del sitio se encuentran en /etc/apache2/sites-available/ (por ejemplo yourdomain.conf), y los sitios habilitados se enlazan simbólicamente en /etc/apache2/sites-enabled/. Habilita un sitio con sudo a2ensite yourdomain.conf.

¿Necesito fusionar el certificado y el paquete CA en Ubuntu?

En Apache 2.4.8 y versiones posteriores (todas las versiones de Ubuntu compatibles), sí: concatena tu certificado y el paquete CA en un solo archivo y apunta SSLCertificateFile hacia él. La directiva separada SSLCertificateChainFile está obsoleta y solo se necesita en versiones anteriores de Apache.

En resumen

Instalar un certificado SSL en Ubuntu con Apache se reduce a subir tus archivos, habilitar mod_ssl, configurar el VirtualHost de HTTPS con tu certificado de cadena completa, probar con sudo apache2ctl configtest y recargar Apache. ¿Necesitas un certificado primero? Explora nuestros certificados SSL.

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

Una imagen detallada de un dragón en vuelo
Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.