Cómo crear un certificado SSL con múltiples entradas DNS, firmado con mi propio certificado CA

Cómo crear un certificado SSL con múltiples entradas DNS, firmado con mi propio certificado CA

Necesito ayuda para crear un certificado SSL con varios sujetoAltNames, firmado con mi propio certificado CA elaborado por mí mismo.

Lo que necesito:

Estoy en OSX 10.10.5

Tengo myCA.cer que uso para firmar otro certificado SSL que tiene los siguientes nombres alternativos:

(Aunque no estoy seguro si IP puede ser un nombre alternativo...)

  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58

Necesito importar este certificado a mi iPhone que ya tiene myCA.cer. Así es como se verificará en el sistema operativo del iPhone.

Lo que hago:

Ejecuto este script de shell:

cat > ./cust.cnf <<-EOF
  [req]
  distinguished_name = req_distinguished_name
  x509_extensions = v3_req
  prompt = no
  [req_distinguished_name]
  CN = *.bearden.local/ CN=192.168.1.58
  [v3_req]
  keyUsage = keyEncipherment, dataEncipherment
  extendedKeyUsage = serverAuth
  subjectAltName = @alt_names
  [alt_names]
  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58
EOF

openssl genrsa -out foo.key 2048 -config ./cust.cnf && \
openssl req -new -out foo.csr -key foo.key -config ./cust.cnf && \
openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

Problema/Pregunta:

1: el comodín en CN no funciona (Google Chrome todavía dice que no es de confianza, aunque configuré opciones de confianza total en el llavero)

2: cuando agrego el certificado al llavero (myCA.cer ya está allí), lo reconoce como válido y confiable, pero el certificado en sí (foo.crt) no tiene nombres DNS alternativos que mencioné en la configuración.

Ayúdenme a obtener mis múltiples nombres Alt DNS para este tipo de certificado.

¡gracias!

Respuesta1

Estos son los cambios que debería haber hecho para que funcione (Gracias a Steffen Ullrich):

openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -extensions v3_req -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

aquí está eldocumentación de opensslexplicando cómo funcionan las opciones -extfiley-extensions

información relacionada