Impossibile generare il certificato con nome alternativo soggetto utilizzando l'utilità keytool Java 1.7


13

Sto riscontrando un problema durante la generazione di una coppia di chiavi con nome alternativo soggetto utilizzando l' keytoolutilità Java da Java 1.7. Sto tentando di seguire le istruzioni trovate qui .

Segue un esempio del comando che sto usando (questo esempio è stato testato):

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

Quindi generi il CSR usando il seguente comando:

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

Che genera la seguente richiesta di certificato:

-----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-----

Quando esamino il CSR usando il Decoder CSR su SSL Shopper , non mostra che include la SAN specificata. Questo certificato è per uso interno nel nostro ambiente e la SAN è necessaria perché gli utenti potrebbero accedere al sito utilizzando FQDN, solo nome server o indirizzo IP.

Sto continuando per risolvere i problemi, ma io non sono che vissuta con certs, quindi sono in perdita, e la maggior parte altre persone nel nostro ambiente non lo si utilizza keytoolper generare i loro certs.

Pensieri? Alternative? Sono certamente disposto a utilizzare un metodo diverso per generare la chiave e il CSR, purché a un certo punto riesca a importarlo in un keystore Java.


"CN = spam.example.com" : l'inserimento di un nome DNS nella CN è deprecato da entrambi i forum IETF e CA / Browser. Invece, inserisci un nome descrittivo nella CN come "Spam Inc". Inserisci tutti i nomi DNS nella SAN.

Risposte:


13

Devi passare la -extbandiera anche al secondo comando:

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

Quindi il certificato contiene il nome alternativo:

$ 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

1
Grazie. Stavo solo effettuando il login per pubblicare un post che avevo capito durante la notte (con un piccolo aiuto da qualcuno locale). Vorrei aver capito il perché , perché i keytooldocumenti non sembrano dire (almeno per me) che è necessario. Ma almeno è una risposta con cui posso convivere e so che non me ne andrò completamente di testa. Grazie.
Doug R.,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.