J'essaie de générer un certificat auto-signé avec OpenSSL avec SubjectAltName.Tandis que je génère le csr pour le certificat, je suppose que je dois utiliser les extensions v3 d'OpenSSL x509. J'utilise :
openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
Quelqu'un peut-il m'aider avec la syntaxe exacte?
ssl
openssl
ssl-certificate
x509certificate
x509
mohanjot
la source
la source
Réponses:
C'est un processus en trois étapes, et cela implique la modification du
openssl.cnf
fichier. Vous pourrez peut-être le faire avec uniquement des options de ligne de commande, mais je ne le fais pas de cette façon.Trouvez votre
openssl.cnf
dossier. Il est probablement situé dans/usr/lib/ssl/openssl.cnf
:Sur mon système Debian ,
/usr/lib/ssl/openssl.cnf
est utilisé par le programme intégréopenssl
. Sur les systèmes Debian récents, il se trouve à/etc/ssl/openssl.cnf
Vous pouvez déterminer ce qui
openssl.cnf
est utilisé en ajoutant un fauxXXX
au fichier et voir si lesopenssl
chokes.Commencez par modifier les
req
paramètres. Ajoutez unealternate_names
section àopenssl.cnf
avec les noms que vous souhaitez utiliser. Il n'y a aucunealternate_names
section existante , donc peu importe où vous l'ajoutez.Ensuite, ajoutez ce qui suit à la section existante
[ v3_ca ]
. Recherchez la chaîne exacte[ v3_ca ]
:Vous pouvez changer
keyUsage
comme suit sous[ v3_ca ]
:digitalSignature
etkeyEncipherment
sont le tarif standard pour un certificat de serveur. Ne t'inquiète pasnonRepudiation
. C'est un peu inutile pensé par des hommes / filles en informatique qui voulaient être avocats. Cela ne veut rien dire dans le monde juridique.En fin de compte, l' IETF ( RFC 5280 ), les navigateurs et les autorités de certification fonctionnent rapidement et de manière lâche, de sorte que l'utilisation des clés que vous fournissez n'a probablement pas d'importance.
Deuxièmement, modifiez les paramètres de signature. Trouvez cette ligne sous la
CA_default
section:Et changez-le en:
Cela garantit que les SAN sont copiés dans le certificat. Les autres moyens de copier les noms DNS sont interrompus.
Troisièmement, générez votre certificat auto-signé:
Enfin, examinez le certificat:
la source
openssl genrsa -out cert.key 3072 -nodes
openssl req -new -x509 -key cert.key -sha256 -config openssl.cnf -out cert.crt -days 730 -subj "/C=US/ST=private/L=province/O=city/CN=hostname.example.com"
subjectAltName=$ENV::ALTNAME
(et définir le env. VarALTNAME=DNS:example.com,DNS:other.example.net
).IP
au lieu deDNS
foralternate_names
si vous travaillez avec une adresse IP. Vous pouvez également copier le fichier de configuration localement, puis le spécifier sur la ligne de commande openssl avec-config my_config.cnf
. Et vous devrez peut-être décommenterreq_extensions = v3_req
.