Me sale el siguiente error de openssl req
:
unable to find 'distinguished_name' in config
problems making Certificate Request
41035:error:0E06D06C:configuration file routines:NCONF_get_string:no value:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/conf/conf_lib.c:329:group=req name=distinguished_name
Entiendo que este es el "Sujeto" que no puede encontrar ... sin embargo, estoy especificando que:
openssl req -new \
-key "$PRIVATE_KEY" \
-sha256 \
-config "$OPTIONS_FILE" \
-subj "/C=US/ST=California/L=San Francisco/O=ACME, Inc./CN=*.*.$DOMAIN/" \
-out "$CSR_FILENAME"
La única sugerencia del manual es que el archivo de configuración no existe; Puedo cat "$OPTIONS_FILE"
, así que definitivamente está allí, y el error no está precedido por el error que el manual señala que iría precedido si este fuera el caso, así que estoy bastante seguro de que openssl
ve el archivo de configuración.
Mi archivo de configuración contiene lo siguiente:
[req]
req_extensions = v3_req
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.*.example.com
... que es literalmente el ejemplo en los documentos .
¿Qué estoy haciendo mal aquí?
*.*.example.com
no es válido. (Solo puede tener 1*
, y solo en el componente más a la izquierda.) Esto no se relaciona con el problema aquí, pero no c / p a ciegas.Respuestas:
Casi como puedo ver ,
-config
está anulando algún tipo de configuración interna; si ve la sección "EJEMPLOS" de la página de manual para openssl req , muestra un ejemplo de un archivo de configuración que contienedistinguished_name
. En una corazonada, agregué lo siguiente a mi configuración:Por lo tanto, toda mi configuración se parecía a algo
(Tenga en cuenta que aquí
${DOMAIN}
no es literal; debe reemplazarlo con su nombre de dominio DNS; creo este archivo en unbash
script concat >"$OPTIONS_FILE" <<EOF
, seguido de lo anterior, seguido deEOF
)openssl req … -subj <my subject> -config <that file> …
Luego tomé mi tema de la línea de comando. Para aquellos interesados, todo el comando terminó pareciéndose a:A partir de esta publicación, entiendo que SHA-1 está en desuso¹ para los certificados X.509, por
-sha256
lo tanto (que es un indicador indocumentado ...), y subjectAltName se está volviendo obligatorio², de ahí la necesidad de la configuración. El único problema adicional que conozco para generar una CSR de mejores prácticas para lo anterior es que debe usar un tamaño de clave RSA de al menos 2048 bits (si está usando RSA, que yo soy); se debe especificar el tamaño de laopenssl genrsa
orden como el valor predeterminado actual es inseguro.¹Aunque no está roto en el momento en que escribo esto, la gente siente que es solo cuestión de tiempo. Consulte "
Puesta de sol gradual SHA1" ² Ya no se recomienda usar CN para el nombre de dominio; No estoy seguro de cuándo / si los navegadores planean desaprobar esto. "Aléjese de incluir y verificar cadenas que parecen nombres de dominio en el Nombre común del sujeto", RFC 6125
Nota: Estoy menos seguro acerca del valor "correcto" de
keyUsage
.fuente
*.*.example.com
no es válida (no puede tener múltiples*
s); c / p-ers ten cuidado.req_distinguished_name
no es aceptada por openssl 1.1.0f, por lo que debe tener al menoscountryName_default
allí (consulte Openssl.conf Walkthru ).Tuve el mismo problema y encontré la respuesta aquí:
https://www.citrix.com/blogs/2015/04/10/how-to-create-a-csr-for-a-san-certificate-on-netscaler/
El archivo de configuración se ve así:
Y entonces:
fuente
req_distinguished_name
sección se puede dejar en blanco. Lo que hace es especificar la plantilla de etiquetas de los nombres de campo requeridos, que se pueden sobrescribir con-subj= /C=xx/ST=xx/L=xx/O=xx/OU=xx/CN=xx
etc., es decir, no asignar esos valores de campo.Para mí, este error parece ser causado por una creación de ruta incorrecta al ejecutar el comando en Windows Server 2012,
C:\OpenSSL-Win32\bin
que generó un error sin bloqueo antes de pedir pass phare:
Claramente, la ruta no es válida debido a la barra oblicua incorrecta, por lo que el archivo de configuración debe agregarse explícitamente en la línea de comando:
fuente
Este error similar:
(Ubuntu 17.04) significaba "necesitas agregar
-subj "/C=US/ST=California/L=San Francis co/O=ACME, Inc./CN=*.*.$DOMAIN/"
a la línea de comando "FWIW.
fuente
Otro posible problema puede ser caracteres especiales (invisibles) UTF-8. Verifique su archivo usando
fuente