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”
Deja un comentario
El problema de los certificados autofirmados es que los navegadores lo rechazan, ¿hay alguna manera de hacer que no pase esto?
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.