Không thể tạo chứng chỉ với Tên thay thế chủ đề bằng tiện ích keytool Java 1.7


13

Tôi đang gặp sự cố khi tạo một cặp khóa với tên thay thế chủ đề bằng keytooltiện ích Java từ Java 1.7. Tôi đang cố gắng làm theo các hướng dẫn được tìm thấy ở đây .

Một ví dụ về lệnh tôi đang sử dụng sau đây (ví dụ này đã được thử nghiệm):

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

Sau đó tôi tạo CSR bằng lệnh sau:

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

Tạo yêu cầu chứng chỉ sau:

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

Khi tôi kiểm tra CSR bằng Bộ giải mã CSR tại SSL Shopper , nó không hiển thị rằng nó bao gồm SAN được chỉ định. Chứng chỉ này dành cho sử dụng nội bộ trong môi trường của chúng tôi và SAN được yêu cầu vì người dùng có thể truy cập trang web bằng FQDN, chỉ tên máy chủ hoặc địa chỉ IP.

Tôi đang tiếp tục khắc phục sự cố, nhưng tôi không kinh nghiệm với certs, vì vậy tôi bị thua lỗ và hầu hết những người khác trong môi trường của chúng tôi không sử dụng keytoolđể tạo ra certs của họ.

Suy nghĩ? Lựa chọn thay thế? Tôi chắc chắn sẵn sàng sử dụng một phương thức khác để tạo khóa & CSR, miễn là tôi có thể nhập nó vào kho khóa Java vào một lúc nào đó.


"CN = spam.example.com" - việc đặt tên DNS trong CN không được chấp nhận bởi cả IETF và Diễn đàn CA / Trình duyệt. Thay vào đó, hãy đặt một cái tên thân thiện trong CN như "Spam Inc". Đặt tất cả tên DNS trong SAN.

Câu trả lời:


13

Bạn cũng cần chuyển -extcờ cho lệnh thứ hai:

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

Sau đó, chứng chỉ chứa tên 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
Cảm ơn bạn. Tôi vừa đăng nhập để đăng bài mà tôi đã tìm ra điều đó qua đêm (với một chút giúp đỡ từ một người địa phương). Ước gì tôi hiểu lý do tại sao , bởi vì các keytooltài liệu dường như không nói (với tôi ít nhất) rằng nó yêu cầu. Nhưng ít nhất đó là một câu trả lời tôi có thể sống và tôi biết tôi không hoàn toàn mất trí. Cảm ơn.
Doug R.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.