Zertifikat mit alternativem Antragstellernamen kann mit dem Java 1.7-Dienstprogramm keytool nicht generiert werden

13

Ich habe ein Problem beim Generieren eines Schlüsselpaars mit einem alternativen Antragstellernamen mithilfe des Java- keytoolDienstprogramms von Java 1.7. Ich versuche den Anweisungen hier zu folgen .

Ein Beispiel für den Befehl, den ich verwende, lautet wie folgt (dieses Beispiel wurde getestet):

keytool -keystore c:\temp\keystore.jks -storepass changeme -keypass changeme -alias spam -genkeypair -keysize 2048 -keyalg RSA -dname "CN=spam.example.com, OU=Spam NA, O=Spam Inc, L=Anywhere, S=State, C=US" -ext san=dns:spam,ip:192.168.0.1

Ich generiere dann die CSR mit dem folgenden Befehl:

keytool -keystore c:\temp\keystore.jks -storepass changeme -alias spam -certreq -file c:\temp\spam.csr

Wodurch wird die folgende Zertifikatsanforderung generiert:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVN0YXRlMREwDwYDVQQHEwhBbnl3
aGVyZTERMA8GA1UEChMIU3BhbSBJbmMxEDAOBgNVBAsTB1NwYW0gTkExGTAXBgNVBAMTEHNwYW0u
ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCExCFepag4KH+j8xgR
BjI58hOEiFuSrkgbL5/1steru3+FwDb98R8XO90kKreq/Qt7s/oHbTpFOwotdkGVxA2x44/R5OYr
Qdfk3v32ypJTxms/8tu0Zi9wbH2ruA/h5AhtZ9TV/xLPFSe5eFvN0pUl90p+9zfd0ZCmPQ69k3Lb
JWlw7eIs7sD1yRqlYZL+HJWrsdtYTHjpqEURcZ5jN0H2YeM/eBWZr7eMKrT4xGRwotFj9AfHCiUj
HH4XTJgkrbBtw96pkPYMj/C7TfUE/slCxafEBIkVKlkHLBb9ra3PVfW/QoDGsf2FjtNKOKFxyy7p
A3A5ufdvrCVZ5EKWGrbbAgMBAAGgMDAuBgkqhkiG9w0BCQ4xITAfMB0GA1UdDgQWBBS1GytnaPx2
SAZCyto2BKh7Yw7bgTANBgkqhkiG9w0BAQsFAAOCAQEAIiwY6RIIJkgUQsdK2XiLJDhBnoxfsKjQ
zkWdZjETNxdD9LSng4AZroKjl05NRdjVkew5QM/gNt8s4jcI8OE0EOaZz6ZmlHK39bPtifJ9xlhy
0Q2Q5VAZ6mUB3BU4QF17MLmtEuI+FsG+S7ZKTK+j1Mcn8E+XvS5EbA0NJJkiIhfikr7nUEgB+qUU
CW0vM53FhVPO/piphNUuE60lMlomnDnCHW9xevAolb3rVCvqTdZ2q3G6BNFG07YEL/jaKKIctrnN
W6W4aGb6ppdXXExkx6EIj7hleoSxZHDVjxiIb3U16WFObtwCpTe9ygHcZtZswRkTzwJZLHipCkcQ
GY3lwA==
-----END NEW CERTIFICATE REQUEST-----

Wenn ich die CSR mit dem CSR-Decoder bei SSL Shopper untersuche , wird nicht angezeigt , dass das angegebene SAN enthalten ist. Dieses Zertifikat ist für die interne Verwendung in unserer Umgebung vorgesehen. Das SAN ist erforderlich, da Benutzer möglicherweise nur mit FQDN, Servername oder IP-Adresse auf die Site zugreifen.

Ich bin weiterhin zu beheben, aber ich bin nicht , dass mit Zert erfahren, so dass ich mit einem Verlust bin und die meisten anderen Leute in unserer Umgebung nicht verwenden keytoolihre certs zu erzeugen.

Gedanken? Alternativen? Ich bin auf jeden Fall bereit, eine andere Methode zum Generieren des Schlüssels und der CSR zu verwenden, sofern ich ihn irgendwann in einen Java-Keystore importieren kann.

Doug R.
quelle
"CN = spam.example.com" - Das Einfügen eines DNS-Namens in den CN wird sowohl von der IETF als auch von den CA / Browser-Foren nicht mehr empfohlen. Geben Sie stattdessen im CN einen Anzeigenamen wie "Spam Inc" ein. Legen Sie alle DNS-Namen im SAN ab.

Antworten:

13

Sie müssen das -extFlag auch an den zweiten Befehl übergeben:

$ keytool -keystore keystore.jks -storepass changeme -alias spam -certreq -ext san=dns:spam,ip:192.168.0.1 -file spam.csr

Dann enthält das Zertifikat den ALT-Namen:

$ openssl x509 -noout -text -in spam.csr | grep -A2 "Requested Extensions"
        Requested Extensions:
            X509v3 Subject Alternative Name:
                DNS:spam, IP Address:192.168.0.1
Dawud
quelle
1
Vielen Dank. Ich loggte mich nur ein, um zu posten, dass ich das über Nacht herausgefunden hatte (mit ein wenig Hilfe von jemandem vor Ort). Ich wünschte, ich hätte das Warum verstanden , denn die keytoolDokumente scheinen (zumindest für mich) nicht zu sagen, dass es erforderlich ist. Aber zumindest ist es eine Antwort, mit der ich leben kann und ich weiß, dass ich nicht völlig verrückt bin. Vielen Dank.
Doug R.