Wie kann ich erstellen ein selbst signiertes Zertifikat mit SubjectAltName mit OpenSSL?
Ich versuche zum generieren eines selbstsignierten Zertifikats mit OpenSSL mit SubjectAltName.Während ich die Generierung der csr für das Zertifikat, meine Vermutung ist, ich habe mit v3 Erweiterungen OpenSSL x509.
Ich bin mit :
openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
Kann mir jemand helfen mit dem genauen syntax?
Siehe auch so erstellen Sie ein selbst-signiertes Zertifikat mit openssl? Es bietet Informationen zum erstellen eines Zertifikats mit dem Betreff Alternative Namen, und sagt Ihnen, andere Regeln gelten, so dass das Zertifikat haben die größte chance auf Erfolg mit Browsern und anderen user-agents.
InformationsquelleAutor mohanjot | 2014-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seine ein drei-Schritt-Prozess, und es umfasst das ändern
openssl.cnf
- Datei. Sie könnten in der Lage sein, es zu tun, nur mit Kommandozeilen-Optionen, aber ich Tue es nicht so.Finden Sie Ihren
openssl.cnf
- Datei. Es ist wahrscheinlich befindet es sich in/usr/lib/ssl/openssl.cnf
:Auf meinem Debian-system
/usr/lib/ssl/openssl.cnf
verwendet wird, durch die integrierteopenssl
Programm. Auf aktuellen Debian-Systemen befindet es sich an/etc/ssl/openssl.cnf
Können Sie bestimmen, welche
openssl.cnf
verwendet wird, durch hinzufügen einer fadenscheinigenXXX
auf die Datei und sehen, obopenssl
drosseln.Erste, ändern die
req
Parameter. Hinzufügen einesalternate_names
Abschnittopenssl.cnf
mit dem Namen, den Sie verwenden möchten. Es gibt keine vorhandenenalternate_names
Abschnitte, also spielt es keine Rolle, wo Sie es hinzufügen.Als Nächstes fügen Sie den folgenden, um die bestehenden
[ v3_ca ]
Abschnitt. Suche nach der genauen Zeichenfolge[ v3_ca ]
:Könnten Sie ändern
keyUsage
folgenden unter[ v3_ca ]
:digitalSignature
undkeyEncipherment
sind standard-Jahrmarkt für ein server-Zertifikat. Mach dir keine sorgen übernonRepudiation
. Seine ein nutzloses etwas ausgedacht comp sci Jungs, die es werden wollten Anwälte. Es bedeutet nichts in der juristischen Welt.In der Ende, der IETF (RFC 5280), Browser und CAs laufen schnell und Locker, so ist es wahrscheinlich egal, was Schlüsselverwendung Sie stellen.
Zweite, ändern Sie die Unterzeichnung Parameter. Finden Sie diese Zeile unter die
CA_default
Abschnitt:Und zu ändern:
Dieser sorgt für die SANs sind, werden in das Zertifikat. Die anderen Möglichkeiten, um kopieren Sie die dns-Namen sind gebrochen.
Dritte, erstellen Sie Ihre self-signed:
Schließlich, überprüfen Sie das Zertifikat:
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"
Es ist auch ein schöner trick, um diese flexibler mit Umgebungsvariablen beschrieben, die hier:
subjectAltName=$ENV::ALTNAME
(und stellen Sie den env. varALTNAME=DNS:example.com,DNS:other.example.net
).Beachten Sie, dass Sie verwenden
IP
stattDNS
füralternate_names
wenn Sie gerade arbeiten, eine ip-Adresse. Sie können auch kopieren Sie die config-Datei lokal, und dann geben Sie es auf die openssl-Kommandozeile mit-config my_config.cnf
. Und haben Sie vielleicht kommentieren Siereq_extensions = v3_req
.Ich habe nie das arbeiten auf OSX, aber mit der erf.conf-Vorlage unter diesem link funktioniert wie ein Charme: support.citrix.com/article/CTX135602 (ich würde extrahieren Sie die Daten in eine Antwort, aber diese Frage wurde unhelpfully geschlossen)
für einige Grund, es ist nicht wie die subjectAltName = @alternate_names unter v3_ca Abschnitt. Könnte es ein Tippfehler? Hier ist die Fehlermeldung bekomme ich: Fehler:22097069:X509 V3-Routinen:DO_EXT_NCONF:ungültige Erweiterung string:v3_conf.c:139:name=subjectAltName,Abschnitt=@alternate_names 140487468840608:Fehler:22098080:X509 V3-Routinen:X509V3_EXT_nconf:Fehler in der extension:v3_conf.c:93:name=subjectAltName, Wert=@alternate_names
InformationsquelleAutor jww