Estoy tratando de generar un certificado autofirmado con OpenSSL con SubjectAltName en él. Mientras estoy generando el csr para el certificado, creo que tengo que usar extensiones v3 de OpenSSL x509. Estoy usando :
openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
¿Alguien puede ayudarme con la sintaxis exacta?
ssl
openssl
ssl-certificate
x509certificate
x509
mohanjot
fuente
fuente
Respuestas:
Es un proceso de tres pasos e implica modificar el
openssl.cnf
archivo. Es posible que pueda hacerlo solo con opciones de línea de comando, pero yo no lo hago de esa manera.Encuentra tu
openssl.cnf
archivo. Probablemente esté ubicado en/usr/lib/ssl/openssl.cnf
:En mi sistema Debian ,
/usr/lib/ssl/openssl.cnf
es usado por el programa integradoopenssl
. En sistemas Debian recientes se encuentra en/etc/ssl/openssl.cnf
Puede determinar cuál
openssl.cnf
se está utilizando agregando unXXX
archivo falso y ver si seopenssl
ahoga.Primero, modifique los
req
parámetros. Agregue unaalternate_names
secciónopenssl.cnf
con los nombres que desea usar. No hayalternate_names
secciones existentes , por lo que no importa dónde lo agregue.A continuación, agregue lo siguiente a la sección existente
[ v3_ca ]
. Busque la cadena exacta[ v3_ca ]
:Puede cambiar
keyUsage
a lo siguiente en[ v3_ca ]
:digitalSignature
ykeyEncipherment
son tarifa estándar para un certificado de servidor. No se preocupenonRepudiation
. Es una parte inútil ideada por chicos / chicas informáticos que querían ser abogados. No significa nada en el mundo legal.Al final, el IETF ( RFC 5280 ), los navegadores y las CA se ejecutan de forma rápida y flexible, por lo que probablemente no importa qué uso de clave proporcione.
En segundo lugar, modifique los parámetros de firma. Encuentre esta línea en la
CA_default
sección:Y cámbielo a:
Esto asegura que las SAN se copien en el certificado. Las otras formas de copiar los nombres DNS están rotas.
En tercer lugar, genere su certificado autofirmado:
Finalmente, examine el certificado:
fuente
openssl genrsa -out cert.key 3072 -nodes
openssl req -new -x509 -key cert.key -sha256 -config openssl.cnf -out cert.crt -days 730 -subj "/C=US/ST=private/L=province/O=city/CN=hostname.example.com"
subjectAltName=$ENV::ALTNAME
(y establezca env. VarALTNAME=DNS:example.com,DNS:other.example.net
).IP
lugar deDNS
foralternate_names
si está trabajando con una dirección IP. También puede copiar el archivo de configuración localmente y luego especificarlo en la línea de comando openssl con-config my_config.cnf
. Y puede que tengas que descomentarreq_extensions = v3_req
.