ไม่สามารถสร้างใบรับรองที่มี Subject Alternate Name โดยใช้ยูทิลิตี้ Java 1.7 keytool


13

ฉันมีปัญหาในการสร้าง keypair ด้วยชื่อสำรองของหัวเรื่องโดยใช้keytoolยูทิลิตี้ Java จาก Java 1.7 ฉันพยายามที่จะทำตามคำแนะนำพบได้ที่นี่

ตัวอย่างคำสั่งที่ฉันใช้ดังนี้ (ตัวอย่างนี้ผ่านการทดสอบแล้ว):

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

เมื่อฉันตรวจสอบ CSR โดยใช้CSR Decoder ที่ SSL Shopperจะไม่แสดงว่ามี SAN ที่ระบุ หนังสือรับรองนี้ใช้สำหรับการใช้งานภายในสภาพแวดล้อมของเราและจำเป็นต้องใช้ SAN เนื่องจากผู้ใช้อาจเข้าถึงเว็บไซต์โดยใช้ FQDN ชื่อเซิร์ฟเวอร์เท่านั้นหรือที่อยู่ IP

ฉันอย่างต่อเนื่องเพื่อแก้ไขปัญหา แต่ฉันไม่ได้ว่ามีประสบการณ์กับใบรับรองดังนั้นฉันที่สูญเสียและส่วนใหญ่คนอื่น ๆ ในสภาพแวดล้อมของเราไม่ได้ใช้keytoolในการสร้างใบรับรองของพวกเขา

คิด? ทางเลือก? แน่นอนฉันยินดีที่จะใช้วิธีการต่าง ๆ เพื่อสร้างคีย์ & CSR ตราบใดที่ฉันสามารถนำเข้าที่เก็บคีย์ Java ในบางครั้ง


"CN = spam.example.com" - การใส่ชื่อ DNS ใน CN นั้นเลิกใช้แล้วทั้ง IETF และฟอรัม CA / เบราว์เซอร์ ให้ใส่ชื่อที่เป็นมิตรใน CN แทน "Spam Inc" ใส่ชื่อ 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

จากนั้นใบรับรองมีชื่อ 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
ขอบคุณ. ฉันเพิ่งเข้าสู่ระบบเพื่อโพสต์ที่ฉันพบว่าค้างคืน (ด้วยความช่วยเหลือเล็กน้อยจากใครบางคนในท้องถิ่น) หวังว่าฉันจะเข้าใจสาเหตุของมันเพราะkeytoolเอกสารดูเหมือนจะไม่พูด (อย่างน้อยฉัน) ที่มันต้องการ แต่อย่างน้อยมันก็เป็นคำตอบที่ฉันสามารถอยู่ด้วยและฉันรู้ว่าฉันไม่ออกไปจากใจ ขอบคุณ
Doug R.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.