J'ai une paire de keys racine CA. Comment émettre un nouveau certificate SSL avec une extension SAN (Sujet Autre Nom)? J'ai essayé ceci
openssl genrsa -out ssl.key 2048 openssl req -new -config ssl.conf -key ssl.key -out ssl.csr openssl x509 -req -sha256 -days 3650 -CAcreateserial -CAkey root.key -CA root.crt -in ssl.csr -out ssl.crt
ssl.conf:
[req] prompt = no distinguished_name = req_distinguished_name x509_extensions = v3_ca [req_distinguished_name] CN = 127.0.0.1 [v3_ca] subjectAltName = @alt_names [alt_names] IP.1 = 127.0.0.1 IP.2 = ::1 DNS.1 = localhost
mais le certificate généré ne contenait pas de SAN.
Toutefois, le certificate auto-signé produit par la command ci-dessous contient SAN:
openssl req -new -x509 -sha256 -days 3650 -config ssl.conf -key ssl.key -out ssl.crt
req_extensions
au lieu de x509_extensions
. x509
:Les extensions dans les certificates ne sont pas transférées aux requests de certificates et vice versa.
J'ai donc résolu mon problème avec la command ca
:
ca/newcerts
dossier et vide ca/index.txt
file. Edité ssl.conf
:
[ca] default_ca = CA_default [CA_default] dir = ./ca database = $dir/index.txt new_certs_dir = $dir/newcerts serial = $dir/serial private_key = ./root.key certificatee = ./root.crt default_days = 3650 default_md = sha256 policy = policy_anything copy_extensions = copyall [policy_anything] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional [req] prompt = no distinguished_name = req_distinguished_name req_extensions = v3_ca [req_distinguished_name] CN = 127.0.0.1 [v3_ca] subjectAltName = @alt_names [alt_names] IP.1 = 127.0.0.1 IP.2 = ::1 DNS.1 = localhost
Commandes Ran:
openssl genrsa -out ssl.key 2048 openssl req -new -config ssl.conf -key ssl.key -out ssl.csr openssl ca -config ssl.conf -create_serial -batch -in ssl.csr -out ssl.crt