¿Cómo agregar AltName desde el archivo csr al archivo crt usando “openssl x509 -req”?

1

Soy un desarrollador web y quiero probar mis sitios web localmente con un certificado SSL autofirmado. Todo funcionó muy bien hasta hace unos días, cuando Chrome comenzó a quejarse de una propiedad AltName que falta.

OpenSSL CA

He creado mi propia autoridad usando:

openssl req
    -x509
    -sha256
    -new
    -out dev.root.ca.crt
    -keyout dev.root.ca.key
    -days 3650

CNF

He creado un archivo openssl.cnf al agregar esos valores a los predeterminados:

[ CA_default ]
copy_extensions = copy

[req]
req_extensions = v3_req

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = $ENV::ALTNAME

ALTNAME via shell

Luego uso este comando para generar un archivo .csr y .key :

set ALTNAME=DNS:dev.example.com

openssl req
    -newkey rsa:2048
    -out dev.example.com.csr
    -pubkey
    -new
    -keyout dev.example.com.key
    -sha256
    -config openssl.cnf

El archivo csr generado contiene el nombre alternativo como se esperaba.

Altname no lo hace desde CSR a CRT

Luego uso este comando para generar los archivos .crt y .key :

openssl x509
    -req
    -in dev.example.com.csr
    -CA dev.root.ca.crt
    -CAkey dev.root.ca.key
    -CAcreateserial
    -out dev.example.com.crt
    -days 3650
    -sha256

Pero los nombres alternativos ya no están presentes en el archivo crt generado.

¿Qué pasa ahora?

¿Debo agregar parámetros adicionales al comando openssl x509 -req ?

    
pregunta Florian Lemaitre 26.04.2017 - 12:14
fuente

1 respuesta

1

Usando el parámetro '-extfile' lo arregló.

Archivo de configuración adicional

He añadido un archivo openssl-ext.cnf que contiene:

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = $ENV::ALTNAME

Usando el parámetro '-extfile'

Y agregó ese nuevo archivo de configuración al comando openssl usando el parámetro -extfile :

openssl x509
    -req
    -in dev.example.com.csr
    -CA dev.root.ca.crt
    -CAkey dev.root.ca.key
    -CAcreateserial
    -out dev.example.com.crt
    -days 3650
    -sha256
    -extfile openssl-ext.cnf
    
respondido por el Florian Lemaitre 26.04.2017 - 14:21
fuente

Lea otras preguntas en las etiquetas