Je sais que vous pouvez spécifier le but pour lequel une clé publique de certificat peut être utilisée en ajoutant une ligne comme celle-ci dans le fichier openssl.cfg:
extendedKeyUsage=serverAuth,clientAuth
Mais comme j'ai plusieurs certificats à créer, chacun avec une utilisation de clé étendue différente, est-il possible de spécifier l'attribut dont j'ai besoin dans la ligne de commande (sans utiliser le fichier openssl.cfg)? Quelque chose comme:
openssl req -newkey rsa:4096 \
-extendedKeyUsage "serverAuth,clientAuth" \
-keyform PEM \
-keyout server-key.pem \
-out server-req.csr \
-outform PEM
Merci!
Vous ne pouvez utiliser que quelque chose comme ceci:
openssl -extensions mysection -config myconfig.cnf
et myconfig.cnf:
[mysection]
keyUsage = digitalSignature
extendedKeyUsage = codeSigning
Je ne connais pas l'interface de ligne de commande de cette fonctionnalité.
J'ai fini par créer plusieurs fichiers openssl.cfg différents et me référer au fichier approprié en utilisant soit le commutateur - config ou - extfile.
identique au traitement SAN openssl req -subj "/CN=client" -sha256 -new -key client-key.pem -out client.csr\ -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:example.com,DNS:www.example.com\nextendedKeyUsage=serverAuth,clientAuth"))