Неможливо генерувати сертифікат з альтернативним іменем суб’єкта за допомогою утиліти Keytool Java 1.7


13

У мене виникла проблема з генерацією ключа з альтернативним іменем теми за допомогою keytoolутиліти Java з Java 1.7. Я намагаюся слідувати інструкціям, знайденим тут .

Приклад команди, яку я використовую, наступний (цей приклад був перевірений):

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

Потім я генерую CSR, використовуючи таку команду:

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

Що генерує такий запит на сертифікат:

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

Коли я вивчаю CSR за допомогою декодера CSR на SSL Shopper , він не показує, що він включає вказаний SAN. Цей сертифікат призначений для внутрішнього використання в нашому середовищі, і SAN необхідний, оскільки користувачі можуть отримувати доступ до сайту за допомогою FQDN, лише імені сервера або IP-адреси.

Я продовжую вирішувати проблеми, але я не такий досвід роботи з certs, тож я в збитку, і більшість інших людей у ​​нашому середовищі не використовують keytoolдля створення своїх certs.

Думки? Альтернативи? Я, безумовно, готовий використовувати інший метод для генерації ключа та CSR, якщо я можу імпортувати його в сховище Java в якийсь момент.


"CN = spam.example.com" - розміщення імені DNS у CN є застарілим і IETF, і форумами CA / Browser. Натомість введіть в CN дружнє ім’я, як "Spam Inc". Покладіть всі імена DNS в SAN.

Відповіді:


13

Вам потрібно також передати -extпрапор другій команді:

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

Тоді сертифікат містить ім'я alt:

$ 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
Дякую. Я просто входив, щоб відправити повідомлення, що я зрозумів це протягом ночі (за невеликою допомогою когось із місцевих). Хочеться, щоб я зрозумів, чому це відбувається, тому що keytoolдокументи, здається, не кажуть (мені щонайменше), що цього потрібно. Але принаймні це відповідь, з якою я можу жити, і я знаю, що зовсім не виходжу з розуму. Дякую.
Дуг Р.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.