web-dev-qa-db-fra.com

Utilisation étendue de la clé OpenSL x509v3

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!

33
David Caissy

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é.

31
patrikbeno

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.

10
David Caissy

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"))

4
fatfatson