Est-il possible de fournir une extension subjectAltName au module req
d'OpenSSL directement en ligne de commande ?
Je sais que c'est possible via un fichier openssl.cnf, mais ce n'est pas vraiment élégant pour la création par lots de CSR.
Ma solution était de passer subjectAltName
via une variable d'environnement.
Il faut d'abord l'ajouter à openssl.conf
:
[ san_env ]
subjectAltName=${ENV::SAN}
Ensuite, définissez la variable d'environnement avant d'invoquer openssl :
export SAN=DNS:value1,DNS:value2
openssl req -extensions san_env -subj '/CN=value1' ...
Remarque : le paramètre -extensions san_env
doit être présent lors de la signature du CSR ainsi que lors de sa génération. Par conséquent, pour les RSC signés par l'AC, ajoutez -extensions san_env
à la commande openssl ca
également.
Le deuxième message de ce [lien][1] indique qu'il n'est pas possible de faire cela uniquement à partir de la ligne de commande, mais le [4e message][2] du même lien fournit une solution de contournement en utilisant la capacité de bash à référencer les données comme si elles étaient dans un fichier.
En y regardant de plus près, quelqu'un a mentionné le paramètre reqexts utilisé pour faire des ajouts à la demande de certificat. Ce [blog][3] utilise le paramètre env de bash pour résoudre ce problème.
Mais j'essaie simplement d'aider. Je n'ai pas testé tout cela moi-même.
[1] : http://openssl.6102.n7.nabble.com/cmd-line-and-subjectAltName-td47538.html [2] : http://openssl.6102.n7.nabble.com/cmd-line-and-subjectAltName-td47538.html#a47548 [3] : http://abautu.blogspot.com.br/2013/11/openssl-setting-up-custom-ca.html