So erstellen Sie ein SSL-Zertifikat mit mehreren DNS-Einträgen, signiert mit meinem eigenen CA-Zertifikat

So erstellen Sie ein SSL-Zertifikat mit mehreren DNS-Einträgen, signiert mit meinem eigenen CA-Zertifikat

Ich brauche Hilfe beim Erstellen eines SSL-Zertifikats mit mehreren SubjectAltNames, signiert mit meinem eigenen, selbst erstellten CA-Zertifikat.

Was ich brauche:

Ich verwende OSX 10.10.5

Ich habe myCA.cer, das ich zum Signieren eines anderen SSL-Zertifikats verwende, das die folgenden alternativen Namen hat:

(bin mir allerdings nicht sicher, ob IP ein alternativer Name sein kann …)

  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58

Ich muss dieses Zertifikat auf mein iPhone importieren, auf dem bereits myCA.cer vorhanden ist. So wird es im Betriebssystem des iPhones verifiziert.

Was ich mache:

Ich führe dieses Shell-Skript aus:

cat > ./cust.cnf <<-EOF
  [req]
  distinguished_name = req_distinguished_name
  x509_extensions = v3_req
  prompt = no
  [req_distinguished_name]
  CN = *.bearden.local/ CN=192.168.1.58
  [v3_req]
  keyUsage = keyEncipherment, dataEncipherment
  extendedKeyUsage = serverAuth
  subjectAltName = @alt_names
  [alt_names]
  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58
EOF

openssl genrsa -out foo.key 2048 -config ./cust.cnf && \
openssl req -new -out foo.csr -key foo.key -config ./cust.cnf && \
openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

Problem/Frage:

1 – Platzhalter in CN funktioniert nicht (Google Chrome sagt immer noch, es sei nicht vertrauenswürdig, obwohl ich im Schlüsselbund vollständige Vertrauensoptionen festgelegt habe)

2 – Wenn ich das Zertifikat zum Schlüsselbund hinzufüge (myCA.cer ist bereits da), wird es als gültig und vertrauenswürdig erkannt, aber das Zertifikat selbst (foo.crt) hat keine alternativen DNS-Namen, die ich in der Konfiguration erwähnt habe.

Bitte helfen Sie mir, meine mehreren alternativen DNS-Namen für diese Art von Zertifikat zu erhalten

Danke!

Antwort1

Dies sind die Änderungen, die ich hätte vornehmen müssen, damit es funktioniert (Danke an Steffen Ullrich):

openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -extensions v3_req -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

Hier ist dasOpenSSL-DokumentationErklären, wie die Optionen -extfileund -extensionsfunktionieren

verwandte Informationen