Comment puis-je générer un certificat auto-signé avec SubjectAltName utilisant OpenSSL?
Je suis en train de générer un certificat auto-signé avec OpenSSL avec SubjectAltName.Alors que je suis de la génération de la rse pour le certificat, je suppose que je dois utiliser v3 extensions de OpenSSL x509.
Je suis à l'aide de :
openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
Quelqu'un peut m'aider avec la syntaxe exacte?
Voir aussi Comment faire pour créer un certificat auto-signé, avec openssl? Il fournit de l'information pour créer un certificat avec l'autre Nom d'Objet, et vous dit à d'autres règles qui s'appliquent, de sorte que le certificat aura le plus de chance de succès avec les navigateurs et autres agents utilisateurs.
OriginalL'auteur mohanjot | 2014-01-31
Vous devez vous connecter pour publier un commentaire.
Ses un processus en trois étapes, et il implique la modification de
openssl.cnf
fichier. Vous pourriez être en mesure de le faire avec seulement les options de ligne de commande, mais je ne suis pas le faire de cette façon.Trouver votre
openssl.cnf
fichier. C'est probablement situé dans/usr/lib/ssl/openssl.cnf
:Sur mon système Debian,
/usr/lib/ssl/openssl.cnf
est utilisé par le haut-openssl
programme. Sur les récentes sur les systèmes Debian, il est situé à/etc/ssl/openssl.cnf
Vous pouvez déterminer qui
openssl.cnf
est utilisé par l'ajout d'une fausseXXX
pour le fichier et voir siopenssl
étouffe.Tout d'abord, modifier la
req
paramètres. Ajouter unalternate_names
section deopenssl.cnf
avec les noms que vous souhaitez utiliser. Il n'existe pas dealternate_names
sections, de sorte qu'il n'importe pas où vous l'ajouter.Ensuite, ajoutez les lignes suivantes à la existant
[ v3_ca ]
section. Recherche la chaîne de caractères exacte[ v3_ca ]
:Vous pouvez modifier
keyUsage
à la suivante en vertu de[ v3_ca ]
:digitalSignature
etkeyEncipherment
sont standard faire pour un certificat de serveur. Ne vous inquiétez pas à propos denonRepudiation
. Son un peu inutile pensée par comp sci gars qui voulait être avocat. Ça ne veut rien dire dans le monde juridique.En fin de compte, l'IETF (RFC 5280), les Navigateurs et les CAs courir vite et lâche, de sorte qu'il n'a probablement pas d'importance ce que la clé de l'utilisation que vous fournissez.
Deuxième, de modifier les paramètres de signature. Trouver cette ligne sous la
CA_default
section:Et à le modifier:
Cela garantit la SANs sont copiés dans le certificat. Les autres manières de copier les noms dns sont cassés.
Troisième, de générer votre auto-signé:
Enfin, examiner le certificat:
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"
Il y a aussi une belle astuce pour le rendre plus flexible à l'aide de variables d'environnement décrites ici:
subjectAltName=$ENV::ALTNAME
(et de l'ensemble de l'env. varALTNAME=DNS:example.com,DNS:other.example.net
).Notez que vous utilisez
IP
au lieu deDNS
pouralternate_names
si vous travaillez avec une adresse ip. Vous pouvez également copier le fichier de configuration en local, puis de le spécifier sur la ligne de commande openssl avec-config my_config.cnf
. Et vous pourriez avoir à décommenterreq_extensions = v3_req
.Je n'ai jamais eu que cela fonctionne sur OSX, mais à l'aide de la req.conf de modèle à ce lien a fonctionné comme un charme: support.citrix.com/article/CTX135602 (j'avais extrait les détails dans une réponse, mais cette question a été unhelpfully fermé)
pour une raison quelconque, il n'aime pas le subjectAltName = @alternate_names sous v3_ca section. Pourrait-il être une faute de frappe? Voici l'erreur que j'obtiens: erreur:22097069:X509 V3 routines:DO_EXT_NCONF:invalid chaîne d'extension:v3_conf.c:139:nom=subjectAltName,section=@alternate_names 140487468840608:erreur:22098080:X509 V3 routines:X509V3_EXT_nconf:erreur dans l'extension:v3_conf.c:93:nom=subjectAltName, valeur=@alternate_names
OriginalL'auteur jww