===== OpenSSL: Crear / Firmar solicitudes CSR con múltiples dominios (Subject Alternative Names) =====
* Para crear un CSR se da por sentado que se tiene una clave privada.
* Para firmar un CSR se da por sentado que se tiene todo lo pertinente para ser una CA: un certificado público (autofirmado) y una clave privada. Hay muchos tutoriales en la red para crear una CA con openSSL.
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_utiles_para_certificados|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]]