我在使用Java 1.7的Java keytool实用程序生成带主题别名的密钥对时遇到了问题。 我试图按照这里find的说明。
我使用的命令示例如下(此示例已经过testing):
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。 此证书适用于我们的环境内部使用,因为用户可能使用FQDN,服务器名称或IP地址访问站点,所以需要使用SAN。
我正在继续排查故障,但是我没有经验丰富的证书,所以我很茫然,我们环境中的大多数人都没有使用keytool来生成他们的证书。
思考? 备择scheme? 我当然愿意用不同的方法来生成密钥和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