Je souhaite configurer OpenSSL de sorte que lors de l'exécution openssl req -new
pour générer une nouvelle demande de signature de certificat, je suis invité à indiquer d'autres noms de sujet à inclure dans le CSR.
J'ai ajouté cette ligne à la [req_attributes]
section de mon openssl.cnf
:
subjectAltName = Alternative subject names
Cela a l'effet souhaité que je suis maintenant invité à fournir des SAN lors de la génération d'un CSR:
$ openssl req -new -out test.csr -key ./test.key <<<
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]:
State or Province Name (full name) [New York]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Example Co]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:test.example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Alternative subject names []:DNS:alt1.example.com
Dans l'exemple ci-dessus, je suis entré DNS:alt1.example.com
à l'invite des SAN.
Le problème est que le CSR résultant ne semble pas être bien formaté:
$ openssl req -text -in ./test.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=US, ST=New York, O=The Banes, CN=test.thebanes.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
[...]
Exponent: 65537 (0x10001)
Attributes:
X509v3 Subject Alternative Name:unable to print attribute
OpenSSL se plaint de ne pas pouvoir imprimer la valeur de l'attribut Subject Alternative Name. À partir d'exemples en ligne (où les gens codent en dur les SAN dans leur openssl.cnf, plutôt que de les demander de manière interactive comme je le souhaite), je m'attends à voir ceci à la place:
Attributes:
X509v3 Subject Alternative Name:
DNS:alt1.example.com
Alors, comment puis-je générer une CSR bien formée avec des SAN interactifs?
openssl
- vous auriez besoin d'un script qui va modifier son fichier de configuration pour cela. :( PS Une solution éprouvée pour le faire de manière non interactive est ici: stackoverflow.com/a/9158662/2693875Réponses:
J'ai moi-même lutté avec cette petite pépite ... quel PITA!
Ma solution: j'ai déplacé tout le fichier openssl.cnf dans un fichier Template Toolkit en ne laissant que la pièce sans comme pièce de remplacement, puis j'ai enveloppé un script perl autour.
Le script perl demande les entrées SAN, puis les insère dans le modèle, enregistre le modèle dans un fichier temporaire, puis j'appelle la demande openssl avec l'option -config pointée vers le fichier temporaire. jetez le fichier temporaire une fois le CSR généré.
Vous pouvez également consulter: http://www.openssl.org/docs/apps/config.html
Il y en a d'autres qui remplacent $ ENV juste avant l'exécution et encapsulent l'appel à la demande openssl en perl ou shell et accomplissent la même chose de manière légèrement plus efficace: http://blog.loftninjas.org/2008/11/11/11/ configuration-ssl-requests-with-subjectaltname-with-openssl /
la source
Je cherche également une solution. Et voici ce que vous voulez:
Et vous pouvez l'obtenir en vous demandant un ou plusieurs noms de sujet alternatifs :)
la source
DNS:my.dns.com, DNS:my.otherdns.org
openssl
wtf ! Vous devez également fournir le SAN à laCA
commande-comme-extensions <string>
, ou-extfile <file>
. mta.openssl.org/pipermail/openssl-users/2016-January/…Ce "subjectAltName" ne devrait pas figurer dans cette section: attributes = req_attributes. Mais dans une section pour req_extensions = (appelez-la comme vous voulez).
Et pas besoin de tous les BS comme
Tapez simplement ce que vous voulez, combien vous voulez:
(Le dernier rend l'accès interne comme " https://192.168.1.2 " sans avertissement)
Donc quelque chose comme:
À votre santé!
la source