Java 1.7 keytool 유틸리티를 사용하여 주제 대체 이름으로 인증서를 생성 할 수 없습니다.


13

keytoolJava 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이 포함되어 있음을 나타내지 않습니다. 이 인증서는 우리 환경에서 내부적으로 사용되며 사용자는 FQDN, 서버 이름 또는 IP 주소를 사용하여 사이트에 액세스 할 수 있으므로 SAN이 필요합니다.

나는 문제를 해결하려면 계속 해요,하지만 난 아니에요 것을 내가 손해를보고있어, 그래서 인증서 표시 경험, 우리의 환경에서 대부분의 다른 사람들은 사용하지 않는 keytool자신의 인증서 표시를 생성합니다.

생각? 대안? 특정 시점에서 Java 키 저장소로 키를 가져올 수있는 한 다른 방법을 사용하여 키 및 CSR을 생성하려고합니다.


"CN = spam.example.com"-CN 에 DNS 이름을 배치하는 것은 IETF 및 CA / Browser Forums에서 더 이상 사용되지 않습니다. 대신 "Spam Inc"와 같이 CN에 친숙한 이름을 입력하십시오. 모든 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

그런 다음 인증서에는 대체 이름이 포함됩니다.

$ 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를 바랍니다. 그러나 적어도 그것은 함께 살 수있는 대답이며, 나는 내 마음에서 완전히 벗어나지 않는다는 것을 알고 있습니다. 감사.
Doug R.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.