Ssl

無法使用 Java 1.7 keytool 實用程序生成具有主題備用名稱的證書

  • June 25, 2017

keytool我在使用Java 1.7中的 Java 實用程序生成具有主題備用名稱的密鑰對時遇到問題。我正在嘗試按照此處找到的說明進行操作。

我正在使用的命令範例如下(此範例已經過測試):

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

當我在 SSL Shopper 使用 CSR 解碼器檢查 CSR 時,它沒有顯示它包含指定的 SAN。此證書在我們的環境中供內部使用,並且需要 SAN,因為使用者可能使用 FQDN、僅伺服器名稱或 IP 地址訪問該站點。

我正在繼續進行故障排除,但我對證書沒有那麼豐富的經驗,所以我很茫然,而且我們環境中的大多數其他人都沒有keytool用來生成他們的證書。

想法?備擇方案?我當然願意使用不同的方法來生成密鑰和 CSR,只要我可以在某個時候將它導入 Java 密鑰庫。

您還需要將-ext標誌傳遞給第二個命令:

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

然後證書包含替代名稱:

$ 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

引用自:https://serverfault.com/questions/605843