À la dernière version de Chrome 60+, s'il n'y a pas de SAN, il renvoie ERROR sur les pages HTTPS. La ligne de commande OpenSSL n'ajoute pas ces extensions.Comment créer un certificat OpenSSL auto-signé en utilisant SAN?
Répondre
Nevermind, compris moi-même. OpenSSL CLI permet à l'indicateur -subj
de définir des informations sur l'autorité de certification (CA), mais l'ajout des noms alternatifs d'objet (SAN) ne peut pas être effectué à l'aide de la ligne de commande. J'ai donc dû appeler -config
suivi du fichier que je veux charger en configuration simple. Pour créer des certificats auto-signés, cela devrait suffire, mais pas pour la production:
# ./config/tiny_openssl.conf
[CA_default]
copy_extensions = copy
[req]
default_bits = 4096
prompt = no
default_md = sha256
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
[req_distinguished_name]
C = US
ST = Washington
L = Seattle
O = My Company
OU = IT Department
emailAddress = [email protected]
CN = mycompany.com
[v3_ca]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
[alternate_names]
DNS.1 = localhost
DNS.2 = *.localhost
DNS.3 = app.localhost
# ...
Les valeurs [alternate_names]
doivent correspondre à l'URL du site (ou sites) servi sous SSL par le certificat généré. Quelque chose comme localhost
ou app.localhost
peut fonctionner. Ensuite, nous tirons OpenSSL en utilisant cette config.
$ openssl req -x509 -newkey rsa:4096 -sha256 -utf8 -days 365 -nodes \
-config ./config/tiny_openssl.conf \
-keyout ./certificates/private.key \
-out ./certificates/ssl/certificate.crt
Ajouté ce fichier .crt
dans Windows 10 comme Autorités de certification racine de confiance, Chrome et redémarré le serveur Web et voilá.
Si vous êtes inquiet pour les performances de la transaction HTTP, vous pouvez modifier les bits rsa
à 2048
.
Cela peut fonctionner uniquement pour les tests internes entre un serveur et un navigateur. Si vous avez besoin d'une solution plus complète et fiable avec 100% valides Certificats SSL, vous devez faire un CA, un CRS, puis signer le CRS avec cette autorité de certification, qui sortira aa certificat auto-signé valide:
Merci, cela a fonctionné :) Sur Mac générer le fichier .crt comme ci-dessus, lien dans votre https config SSL, redémarrez-vous Apache. Puis double-cliquez sur le fichier .crt pour "Ajouter au trousseau", puis double-cliquez sur le certificat installé et développez la section "Trust" et sélectionnez "Toujours faire confiance", redémarrez chrome, et "voilá" – kontur