Configurar un certificado SSL auto firmado para un hosting en Core-Admin


#1

Introducción

Cuando un sitio web no tiene un certificado SSL configurado para su propio nombre (ServerName), al acceder a su versión segura https://<nombre-de-la-web> el navegador no encuentra ningún VirtualHost que responda a ese nombre por el puerto 443. En esa situación Apache sirve el primer VirtualHost SSL disponible del servidor, lo que provoca un efecto desconcertante: el visitante teclea la dirección de su web pero ve otro sitio diferente (el de otro cliente alojado en la misma máquina).

Para evitarlo es necesario que el hosting disponga de un VirtualHost que capture tanto HTTP como HTTPS para su propio ServerName, aunque el certificado no esté firmado por una autoridad de confianza. Core-Admin permite resolver esto de forma automática mediante la opción Configure self-signed SSL certificate del módulo Webhosting Management.

Esta herramienta genera un certificado auto firmado que incluye todos los nombres del hosting, lo firma automáticamente y crea (o reutiliza) una location SSL en el puerto 443 asignándola al hosting, de modo que https://<nombre-de-la-web> pase a servir el sitio correcto.

¿Cuándo usar esta opción?

Es la opción adecuada en casos como:

  • El hosting solo tiene configurada una location HTTP (puerto 80) y al entrar por https:// se muestra otro sitio del servidor.
  • Se necesita acceso HTTPS funcional de forma inmediata, sin esperar a la validación de una autoridad de certificación.
  • El dominio todavía no apunta al servidor (DNS sin propagar), por lo que no es posible emitir un certificado Let’s Encrypt, que requiere validación pública del nombre.
  • Se trata de un entorno interno, de pruebas o de pre-producción donde no es imprescindible un certificado de confianza.

Nota importante: Un certificado auto firmado no está emitido por una autoridad de certificación de confianza, por lo que los navegadores mostrarán un aviso de seguridad al acceder al sitio. Si el dominio ya apunta al servidor y se desea un certificado válido sin avisos, utilice en su lugar la opción Request/Renew Let’s Encrypt certificate.

Requisitos previos

  • Core-Admin instalado con el módulo Webhosting Management activo.
  • Acceso al panel de Core-Admin con permisos sobre el hosting a configurar.
  • El hosting no debe estar marcado con configuración personalizada (etiqueta #core_admin_dont_modify). Si lo está, deberá desactivar la configuración personalizada antes de usar esta opción y restaurarla después.

Localización de la opción en la interfaz web

  1. Inicie sesión en el panel web de Core-Admin.
  2. Navegue hasta el módulo Webhosting Management.
  3. En la barra de herramientas del árbol lateral, localice el botón Configure self-signed SSL certificate (icono de certificado).

Seleccione la máquina, luego pinche en el gestor de alojamientos y seleccione la opción en “Opciones”:

Luego seleccione el alojamiento a configurar (NOTA IMPOTANTE: esto reemplazará el certificado actual si está configurado):
image

Configurar el certificado

  1. Pulse el botón Configure self-signed SSL certificate.

  2. Se abrirá un diálogo de confirmación titulado Configure self-signed SSL certificate for hosting con la siguiente nota:

    This option will create a self-signed SSL certificate for the selected hosting and configure a new location with SSL enabled. The certificate will not be signed by a trusted authority, so browsers will show a security warning.

  3. En el desplegable hosting, seleccione el hosting al que desea aplicar el certificado auto firmado.

  4. Confirme la operación.

Al finalizar, se mostrará un mensaje de confirmación indicando que el certificado auto firmado se ha creado y configurado correctamente para el hosting seleccionado.

Qué hace la herramienta internamente

Aunque el diálogo solo pide seleccionar el hosting, la operación realiza varios pasos de forma automática:

1. Construcción de la lista de nombres (common names)

El certificado se genera incluyendo todos los nombres asociados al hosting, de modo que cubra cualquier forma de acceder a la web:

  • El nombre base del hosting (por ejemplo midominio.com).
  • La variante www (www.midominio.com), implícita en todos los hostings.
  • Todos los alias activos del hosting.

Todos estos nombres se incluyen como common names del certificado, separados por comas.

2. Creación y auto-firma del certificado

Se crea un certificado con los siguientes datos predefinidos y, a continuación, se marca como listo (ready), lo que dispara su auto-firma:

Campo Valor
Common name Todos los nombres del hosting (base + www + alias activos)
Country GB
State / City City
Organization Nombre del hosting
Department It support
Address noreply@<nombre-del-hosting>

3. Creación o reutilización de la location SSL

La herramienta obtiene la IP de la location actual del hosting y comprueba si ya existe una location con esos parámetros (misma IP, puerto 443, SSL activo, mismo certificado y activa):

  • Si ya existe, la reutiliza y la asigna al hosting.

  • Si no existe, crea una nueva location con esta configuración:

    Parámetro Valor
    Puerto 443
    SSL activado
    SNI activado
    Configuración SSL support_http_and_https (captura HTTP y HTTPS para el ServerName)
    Activa

El valor clave es support_http_and_https: gracias a él, el VirtualHost resultante captura tanto el tráfico HTTP como el HTTPS para el ServerName del hosting, que es justamente lo que evita que https://<nombre-de-la-web> acabe mostrando otro sitio del servidor.

4. Asignación de la location al hosting

Finalmente, la location SSL se asigna al hosting y se aplica la configuración, dejando el sitio accesible vía https:// con su propio certificado.

Verificación

Tras completar la operación, acceda a https://<nombre-de-la-web> desde un navegador. Debería observar:

  • El navegador muestra un aviso de seguridad (comportamiento esperado en un certificado auto firmado). Al aceptar la excepción, se carga el sitio correcto del hosting, ya no el de otro cliente.
  • En el certificado presentado por el sitio aparecen el nombre del hosting y sus variantes (www y alias) como nombres válidos.

Limitaciones y consideraciones

  • Aviso de seguridad en el navegador: es inevitable con cualquier certificado auto firmado. Para eliminarlo, migre a un certificado Let’s Encrypt cuando el dominio apunte al servidor.
  • Hostings con configuración personalizada: si el hosting está marcado con #core_admin_dont_modify, la herramienta se detiene con un error. Debe desactivar la configuración personalizada, ejecutar la configuración del certificado y volver a aplicar sus ajustes personalizados.
  • Datos del certificado: los campos de organización, país, etc. son valores genéricos predefinidos. Al tratarse de un certificado auto firmado, no influyen en su validez técnica.

Resumen

La opción Configure self-signed SSL certificate de Webhosting Management resuelve de forma automática y en un solo paso el problema de los sitios que, al no disponer de un VirtualHost SSL propio, muestran otra web al acceder por https://. Genera un certificado auto firmado con todos los nombres del hosting, lo firma y configura una location SSL en el puerto 443 que captura HTTP y HTTPS para el ServerName correcto. Es la solución ideal para entornos internos, de pruebas o cuando el dominio aún no puede validarse con Let’s Encrypt.