Gibt es eine Möglichkeit für javas Keytool, ein selbstsigniertes Zertifikat mit einem Platzhalter im SAN (Subject Alternative Name) zu generieren? Ich verwende diesen Befehl, um Keystore zu generieren:
%Vor% Aber ich bekomme IOException: DNSName components must begin with a letter
Offensichtlich ist das Problem *.example.com
in SAN, aber ich sehe keine andere Möglichkeit, ein selbstsigniertes Zertifikat für example.com
subdomains zu generieren.
Nach diesem sollte es möglich sein. Ist es Fehler in meiner Syntax, Fehler in Keytool, oder ich etwas falsch verstanden?
BTW, ich benutze keytool von JDK 1.8 update 60
BEARBEITEN Ich habe es geschafft, ein selbstsigniertes Zertifikat für alle example.com
Subdomains über keytool zu generieren, indem ich CN=*.example.com
angegeben habe und SAN leer gelassen habe. Nichtsdestoweniger werde ich die Antwort von Omikron als akzeptiert akzeptieren (da es eine tatsächliche Antwort und keine Umgehung von Einschränkungen ist).
Keytool verwendet intern die Klasse sun.security.x509.DNSName
, um die Eingabe zu überprüfen. DNSName erzwingt die in RFC 1034 angegebene Syntax. Zitat aus seinem Javadoc-Kommentar:
Der Name MUSS in der "bevorzugten Namenssyntax" laut RFC stehen 1034.
Die bevorzugte Syntax lautet:
%Vor%Nach dieser Syntax müssen Domainnamen mit einem Buchstaben beginnen (A-Z, a-z).
Neuere RFCs (zB RFC 2181 , RFC 1123 ) lockern diese Einschränkungen, daher kann dies als Fehler in Java betrachtet werden. Es gibt bereits einige verwandte Fehlerberichte:
Die Antwort lautet also Nein. Es gibt derzeit keine Möglichkeit, eine Wildcard-SAN-Erweiterung mit keytool zu erstellen.
Aber Sie könnten KeyStore Explorer dazu verwenden. Es ist im Grunde Keytool mit einer GUI und erzwingt diese Einschränkungen nicht.
Tags und Links java certificate self-signed keytool wildcard-subdomain