Tidak dapat menghasilkan sertifikat dengan Nama Alternatif Subjek menggunakan utilitas Java 1.7 keytool

13

Saya mengalami masalah menghasilkan keypair dengan nama alternatif subjek menggunakan keytoolutilitas Java dari Java 1.7. Saya mencoba mengikuti instruksi yang ditemukan di sini .

Contoh dari perintah yang saya gunakan berikut (contoh ini telah diuji):

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

Saya kemudian menghasilkan CSR menggunakan perintah berikut:

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

Yang menghasilkan permintaan sertifikat berikut:

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

Ketika saya memeriksa CSR menggunakan CSR Decoder di SSL Shopper , itu tidak menunjukkan bahwa itu termasuk SAN yang ditentukan. Sertifikat ini untuk penggunaan internal di lingkungan kami, dan SAN diperlukan karena pengguna dapat mengakses situs menggunakan FQDN, nama server saja, atau alamat IP.

Aku terus memecahkan masalah, tapi aku tidak yang berpengalaman dengan sertifikat, jadi aku bingung, dan kebanyakan orang lain di lingkungan kita tidak menggunakan keytooluntuk menghasilkan sertifikat mereka.

Pikiran? Alternatif? Saya tentu saja bersedia menggunakan metode yang berbeda untuk menghasilkan kunci & CSR, selama saya dapat mengimpornya ke Jawa keystore di beberapa titik.

Doug R.
sumber
"CN = spam.example.com" - menempatkan nama DNS di CN tidak lagi digunakan oleh IETF dan CA / Browser Forum. Sebaliknya, letakkan nama yang ramah di CN seperti "Spam Inc". Masukkan semua nama DNS di SAN.

Jawaban:

13

Anda perlu mengoper -extbendera ke perintah kedua juga:

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

Kemudian sertifikat tersebut berisi nama 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
dawud
sumber
1
Terima kasih. Saya baru saja masuk untuk memposting yang saya temukan dalam semalam (dengan sedikit bantuan dari seseorang lokal). Seandainya saya mengerti mengapa , karena para keytooldokter tampaknya tidak mengatakan (setidaknya kepada saya) bahwa itu diperlukan. Tapi setidaknya itu adalah jawaban yang bisa saya terima dan saya tahu saya tidak sepenuhnya kehilangan akal. Terima kasih.
Doug R.