Imprimir

Certificado SSL auto-firmado multi-dominio

Veamos cómo implementar conexiones seguras SSL en un servidor web multi-dominio (Name-Based Virtual Host) con una única IP. Utilizaremos para ello un único certificado SSL con extensiones X509v3 y múltiples campos subjectAltName.

  • Haremos una copia del archivo de configuración de SSL:
    /etc/ssl/openssl.cnf
    en nuestro directorio de trabajo: /etc/<webserver>/ssl/openssl.cnf
    para personalizarlo.
  • Editamos openssl.cnf y descomentamos la línea:
    req_extensions = v3_req # The extensions to add to a certificate request
  • ... y añadimos los dominios que queremos asegurar (utilizaremos wildcards para asegurar todos los subdominios):
    [ v3_req ]
    subjectAltName = @alt_names
     
    [alt_names]
    DNS.1   = *.domain1.com
    DNS.2   =   domain1.com
    DNS.3   = *.domain2.com
    DNS.4   =   domain2.com
    DNS.5   = *.domain3.com
    DNS.6   =   domain3.com
  • Generamos un par clave privada RSA / clave pública CSR:
    # openssl req -newkey rsa:2048 -nodes -keyout domain.com.key
      -out domain.com.csr -config ./openssl.cnf
    # openssl req -noout -text -in domain.com.csr
  • Generamos el certificado auto-firmado:
    # openssl x509 -req -days 365 -in domain.com.csr
      -signkey domain.com.key -out domain.com.crt
      -extensions v3_req -extfile ./openssl.cnf
    # openssl x509 -noout -text -in domain.com.crt
  • Creamos el certificado en formato PEM:
    # cat domain.com.key domain.com.crt > domain.com.pem
  • Por último, configuramos el servidor web y reiniciamos el daemon para activar los cambios.

2 Comentarios en “Certificado SSL auto-firmado multi-dominio”

  • Thawte dice:

    El problema de los certificados autofirmados es que los navegadores lo rechazan, ¿hay alguna manera de hacer que no pase esto?

  • eljitanotraidor dice:

    Los certificados autofirmados no están firmados por una CA (entidad con autoridad certificadora -Ceres, Verisign, etc.-): cualquier navegador que accede a un servidor HTTPS que tiene un certificado autofirmado, avisa al usuario de su falta de autentificación. El único modo de que el usuario no vea este aviso, es que tenga instalado nuestro certificado y, para ello deberemos hacer que lo instale; por tanto, la primera vez que entre en un dominio HTTPS autofirmado ( y siempre que entre y no tenga instalado el certificado ), el navegador le avisa y le presenta también la opción de que admita dicho certificado por una vez o siempre (instalar certificado), que no está firmado por una CA sino por nosotros. Es en éste momento en el que el usuario debe admitir la excepción y aceptar la instalación de dicho certificado para que no se le muestre el mensaje de aviso.

Deja un comentario