OpenSSL: Crear / Firmar solicitudes CSR con múltiples dominios (Subject Alternative Names)

NOTA: También es posible no hacerlo mediante una CA y especificar varios dominios para un certificado autofirmado. Un ejemplo está en la guía de Comandos openssl útiles.

Crear el fichero de configuración con los dominios pertinentes (san.conf).

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[req_distinguished_name]
C = ES
ST = Barcelona
L = Barcelona
O = Empresa
OU = Departamento XX
CN = dominio.com (Escribir aquí un dominio es irrelevante, los dominios serán siempre comprobados en [alt_names])

[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = www.dominio1.de
DNS.2 = dominio2.com
DNS.3 = subdominio0.dominios.net
DNS.4 = www.dominio.4

NOTA: Recordar que si se escribe un dominio en el campo CN, este debe ser también escrito en la sección “[alt_names]”.

Crear la solicitud CSR en base a la anterior configuración.

openssl req -sha512 -new -out solicitud.csr -key llave.key -config san.conf
# Motrar el contenido del CSR: openssl req -text -noout -verify -in balance.csr
# CSR Check online: [[https://www.networking4all.com/en/support/tools/csr+check/]]

Firmar una solicitud CSR con múltiples dominios (Subject Alternative Names).

openssl x509 -days 3650 -req -sha512 -in solicitud.csr -CAserial serial -CA cacert.pem -CAkey cakey.pem -out solicitud_firmada.crt -extensions v3_req -extfile san.conf 

Lecturas recomendadas.

comandos_openssl_utiles_para_certificados