Impossible de générer un certificat avec un autre nom de sujet à l'aide de l'utilitaire Java 1.7 keytool

13

Je rencontre un problème lors de la génération d'une paire de clés avec un autre nom de sujet à l'aide de l' keytoolutilitaire Java de Java 1.7. J'essaie de suivre les instructions trouvées ici .

Un exemple de la commande que j'utilise suit (cet exemple a été testé):

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

Je génère ensuite le CSR en utilisant la commande suivante:

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

Ce qui génère la demande de certificat suivante:

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

Lorsque j'examine le CSR à l'aide du décodeur CSR chez SSL Shopper , il ne montre pas qu'il inclut le SAN spécifié. Ce certificat est destiné à un usage interne dans notre environnement et le SAN est requis car les utilisateurs peuvent accéder au site à l'aide du nom de domaine complet, du nom de serveur uniquement ou de l'adresse IP.

Je continue à dépanner, mais je ne suis pas que l' expérience avec certs, donc je suis à une perte, et la plupart des autres personnes dans notre environnement ne sont pas en utilisant keytoolpour générer leurs certs.

Pensées? Des alternatives? Je suis certainement prêt à utiliser une méthode différente pour générer la clé et le CSR, tant que je peux l'importer dans un magasin de clés Java à un moment donné.

Doug R.
la source
"CN = spam.example.com" - le placement d'un nom DNS dans le CN est déconseillé à la fois par l'IETF et les forums CA / Browser. Au lieu de cela, mettez un nom convivial dans le CN comme "Spam Inc". Mettez tous les noms DNS dans le SAN.

Réponses:

13

Vous devez également passer le -extdrapeau à la deuxième commande:

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

Ensuite, le certificat contient le nom alternatif:

$ 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
la source
1
Je vous remercie. Je me connectais juste pour poster que j'avais compris cela du jour au lendemain (avec un peu d'aide de quelqu'un du coin). J'aurais aimé comprendre le pourquoi de cela, car les keytooldocuments ne semblent pas dire (du moins pour moi) que cela est nécessaire. Mais au moins c'est une réponse avec laquelle je peux vivre et je sais que je ne sors pas totalement de mon esprit. Merci.
Doug R.