คำแนะนำนี้จะช่วยให้คุณเริ่มต้นลงนามโค้ด Java ของคุณด้วย OV / IV or EV ใบรับรองการเซ็นชื่อรหัสจาก SSL.com คำแนะนำเหล่านี้สมมติว่ามีการติดตั้ง Java Development Kit (JDK) บนคอมพิวเตอร์ของคุณและ keytool
และ jarsigner
คำสั่งรวมอยู่ใน PATH ของคุณ คำแนะนำในการลงรหัส Yubikey ถือว่าใบรับรองของคุณได้รับการติดตั้งในช่อง 9a ของ a ยูบิคีย์ FIPS โทเค็นตามที่จัดส่งโดย SSL.com
หากคุณยังไม่มีใบรับรองการเซ็นชื่อรหัสและไม่แน่ใจว่าคุณต้องการประเภทใดโปรดอ่าน คำถามที่พบบ่อยนี้.
การลงนามรหัส OV/IV (สำหรับใบรับรอง OV/IV ที่ออกก่อนวันที่ 1 มิถุนายน 2023 เท่านั้น)
องค์ประกอบ
วิธีที่ 1: สร้าง CSR และไฟล์ PFX ในเบราว์เซอร์
วิธีที่ง่ายที่สุดสำหรับการเริ่มต้นอย่างรวดเร็วด้วยการเซ็นชื่อโค้ด Java คือการสร้าง CSR และไฟล์ PFX เมื่อดึงใบรับรองของคุณจาก SSL.com และติดตั้งในที่เก็บคีย์ Java ใหม่
.jar
ไฟล์โดยตรงด้วยไฟล์ PFX ที่ไม่ถูกแปลงโดยการเพิ่ม -storetype pkcs12
ตั้งค่าสถานะไปที่ jarsigner
คำสั่ง- ทำตามขั้นตอนที่ปรากฏใน การสั่งซื้อและการดึงรหัสการลงนามใบรับรอง เพื่อสั่งซื้อใบรับรองของคุณและดาวน์โหลดไฟล์ PFX พร้อมใบรับรองและรหัสส่วนตัวของคุณ
- นำเข้า PFX ไปยังที่เก็บคีย์ใหม่ด้วยรหัสผ่านเดียวกันโดยใช้คำสั่งด้านล่าง (แทนที่
MY-CERTIFICATE.p12
และMY-KEYSTORE.jks
ด้วยชื่อจริงของไฟล์ PFX ของคุณและชื่อไฟล์ที่คุณต้องการให้ที่เก็บคีย์ของคุณ ทราบด้วยว่าdestalias
โดยพลการและคุณอาจใช้ค่านามแฝงอื่นหากต้องการ)keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore XNUMX -Destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias codesigning
หมายเหตุ ค่าสำหรับ-srcalias
สำหรับไฟล์ PFX ที่ดาวน์โหลดจาก SSL.com โดยปกติควรเป็นไฟล์1
แต่คุณสามารถยืนยันสิ่งนี้ได้ด้วยการรันคำสั่งkeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
และตรวจสอบค่าที่แสดงสำหรับAlias name
. - คุณจะได้รับพร้อมท์ให้ใส่รหัสผ่านสำหรับที่เก็บคีย์ปลายทางและจากนั้นสำหรับรหัสผ่านที่เก็บคีย์ต้นทาง (รหัสผ่านที่คุณป้อนเมื่อสร้าง PFX) คุณอาจเห็นข้อความเตือนเริ่มต้นด้วย
Warning: The JKS keystore uses a proprietary format
. คุณอาจเพิกเฉยต่อข้อความนี้ได้อย่างปลอดภัย
วิธีที่ 2: สร้างคู่คีย์และ CSR กับ Java
หากคุณต้องการสร้างคู่คีย์ของคุณและ CSR ด้วย Java ให้ทำตามขั้นตอนในส่วนนี้ กระบวนการนี้เป็นกระบวนการเดียวกับที่ใช้ในการสร้าง CSR สำหรับ SSL /TLS ใบรับรอง ใน Java
สร้าง Keystore และ Key Key
- ขั้นแรกเราจะสร้างที่เก็บคีย์และคู่คีย์สาธารณะ / ส่วนตัว Java ใช้ไฟล์ที่มีนามสกุล
.jks
(Java KeyStore) เพื่อจัดเก็บใบรับรองและกุญแจเข้ารหัส ป้อนคำสั่งต่อไปนี้เพื่อสร้างที่เก็บคีย์และคู่คีย์ RSA 3072 บิต (แทนที่MY-KEYSTORE.jks
ด้วยชื่อที่คุณต้องการให้ไฟล์มี)keytool -genkeypair -alias codesigning -keyalg RSA -keysize 3072 - คีย์สโตร์ของฉัน
- คุณจะได้รับการนำเสนอพร้อมชุด ก่อนอื่นให้สร้างและตรวจสอบรหัสผ่านสำหรับที่เก็บคีย์จากนั้นป้อนและตรวจสอบข้อมูลที่ร้องขอ (แทนที่ค่าที่แสดงในตัวพิมพ์ใหญ่ทั้งหมดด้วยข้อมูลของคุณเอง)
ป้อนรหัสผ่านที่เก็บคีย์: ป้อนรหัสผ่านใหม่อีกครั้ง: ชื่อและนามสกุลของคุณคืออะไร? [ไม่ทราบ]: FIRSTNAME LASTNAME ชื่อองค์กรของคุณคืออะไร? [ไม่ทราบ]: บริษัท ชื่อเมืองหรือท้องถิ่นของคุณคืออะไร? [ไม่ทราบ]: CITY รัฐหรือจังหวัดของคุณชื่ออะไร [ไม่ทราบ]: STATE รหัสประเทศที่เป็นตัวอักษรสองตัวสำหรับยูนิตนี้คืออะไร? [ไม่ทราบ]: สหรัฐอเมริกาคือ CN=FIRSTNAME LASTNAME, OU=DEPARTMENT, O=COMPANY, L=CITY, ST=STATE, C=US ถูกต้องหรือไม่ [ไม่]: ใช่
- สร้างไฟล์ที่เก็บคีย์แล้วและคุณพร้อมที่จะสร้างไฟล์ CSR.
ผลิต CSR
- ป้อนคำสั่งต่อไปนี้เพื่อสร้าง CSR จาก keystore ที่เราเพิ่งสร้างขึ้น (แทนที่
MY-KEYSTORE.jks
ด้วยค่าที่คุณใช้เมื่อสร้างที่เก็บคีย์และMY-CSR.csr
ด้วยชื่อที่คุณต้องการใช้สำหรับ CSR.)keytool -certreq -alias codesigning - ไฟล์ MY-CSR.csr -keystore ของฉัน -KEYSTORE.jks
- ป้อนรหัสผ่านที่คุณสร้างขึ้นเมื่อสร้างที่เก็บคีย์
ป้อนรหัสผ่านคีย์สโตร์:
- พื้นที่ CSR ได้ถูกสร้างขึ้น หากคุณพร้อมที่จะสั่งซื้อใบรับรองของคุณจาก SSL.com ให้เปิดไฟล์ในโปรแกรมแก้ไขข้อความเพื่อคัดลอกและวางลงในไฟล์ CSR เมื่อสั่งซื้อ เนื้อหาของไฟล์จะมีลักษณะคล้ายตัวอย่างที่แสดงด้านล่าง:
-----BEGIN NEW CERTIFICATE REQUEST----- MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVNUQVRFMQ0wCwYD VQQHEwRDSVRZMRAwDgYDVQQKEwdDT01QQU5ZMRMwEQYDVQQLEwpERVBBUlRNRU5U MRswGQYDVQQDExJGSVJTVE5BTUUgTEFTVE5BTUUwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQCrRyk8VLs1THls+vfz0YtMJ3qYYl4c5c499d1YSbfQHa6L kIYhKTxvgdtbD+ePDigKB40CpeuMp5Yu8R6g2YIVBpGMrejAZYAmrzs6tfjpelh0 ocSDwYr7H8qQ9jq6MfZTu6J7EjS5RMODB6MVq1usKg3H866xbi6lqAtcktEF+zlM 4FW9Tm3H/DW2G7EnTjlMPzgaXNIU7lLar7YAWPJgv83NV8lQNCDW4lFlZLWBU95r YkJ4gfWUFUyPc+AiGbsyDdrVjPvF5yaebnFDrwheFaWeTTigSfLY688G7bpA8VvE lKioCl8nlJlc9HOBNKKdhs4qEtF0BwSE8tOgbkWPAgMBAAGgMDAuBgkqhkiG9w0B CQ4xITAfMB0GA1UdDgQWBBTmVpJp824krUaJKrQNhsSbVjJA1jANBgkqhkiG9w0B AQsFAAOCAQEALlux89RkXyHN4PQqQHbShSeTTWLURII+F+OSK9N1RS5l8V7AMcRM wvOkPP7JBRCKiaFGTW+5vcLQNnWRqQZMe0I4E0jzhL2gGsdChPIJy9Jwgn3Rzxmw 8V0lBY1SHQ9LKgSK0jIer3PQhXHDJlE2g2Dx8nJ4WJk7l2OTF9Kkly9hg8MOQdeg VIcs3HLsVI9Cwd6UHRT6ruKL3+bRgEcb6qj+qcrKHkzN7KXbOEznd10nAm87wENS mTb012ZFMlpUDvPNAHQgoGJ6slA+pIoH1fvrkosjql7R/H7Q+onm37Qa6d9L2ZqM MhgNpNWVwI0UBU4Xy4p9oUCJnvHhQ7U+3w== -----END NEW CERTIFICATE REQUEST-----
สั่งซื้อและรับใบรับรอง
- ทำตามขั้นตอนที่ปรากฏใน การสั่งซื้อและการดึงรหัสการลงนามใบรับรอง ผ่านขั้นตอนที่ 24 แทนที่จะคลิกทันที สร้างใบรับรอง ปุ่มตรวจสอบกล่องที่มีข้อความ ฉันมีของตัวเอง CSR.
- วางของคุณ CSR ลงในช่องแบบฟอร์มและคลิก สร้างใบรับรอง ปุ่ม
- คลิก ดาวน์โหลด และบันทึกปุ่ม
.crt
ไฟล์ในที่เดียวกับที่คุณสร้างที่เก็บคีย์ของคุณ
นำเข้าใบรับรองเข้าสู่ Keystore
- ใช้คำสั่งต่อไปนี้เพื่ออิมพอร์ตใบรับรองไปยังไฟล์ที่เก็บคีย์ Java ของคุณ (แทนที่ MY-CERTIFICATE.crt และ MY-KEYSTORE.jks ด้วยชื่อไฟล์จริง)
keytool -importcert -file MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias
- ป้อนรหัสผ่านที่เก็บคีย์เมื่อได้รับพร้อมต์
ป้อนรหัสผ่านคีย์สโตร์:
- ใบรับรองของคุณถูกติดตั้งในที่เก็บคีย์และคุณพร้อมที่จะเริ่มการลงนามไฟล์
ติดตั้งการตอบกลับใบรับรองในที่เก็บคีย์
เซ็นชื่อไฟล์ด้วย Jarsigner
- ใช้คำสั่งต่อไปนี้เพื่อเพิ่มลายเซ็นดิจิตอลที่ประทับเวลาลงใน
.jar
ไฟล์. (แทนที่/PATH/TO/MY-KEYSTORE.jks
และMY-JAR.jar
ด้วยชื่อไฟล์จริงที่คุณใช้ หากคุณใช้นามแฝงอื่นเมื่อตั้งค่าที่เก็บคีย์ของคุณให้แทนที่codesigning
ในคำสั่ง)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks รหัส MY-JAR.jar
หมายเหตุ: นอกจากนี้ยังสามารถลงชื่อของคุณได้.jar
ไฟล์โดยตรงด้วยไฟล์ PFX ที่ไม่ถูกแปลงโดยการเพิ่ม-storetype pkcs12
ตั้งค่าสถานะไปที่jarsigner
คำสั่ง
หมายเหตุ ตามค่าเริ่มต้น SSL.com รองรับการประทับเวลาจากคีย์ ECDSA
หากคุณพบข้อผิดพลาดนี้:The timestamp certificate does not meet a minimum public key length requirement
คุณควรติดต่อผู้จำหน่ายซอฟต์แวร์ของคุณเพื่ออนุญาตการประทับเวลาจากคีย์ ECDSA
หากผู้จำหน่ายซอฟต์แวร์ของคุณไม่สามารถอนุญาตให้ใช้ตำแหน่งข้อมูลปกติได้ คุณสามารถใช้ตำแหน่งข้อมูลเดิมนี้ได้http://ts.ssl.com/legacy
เพื่อรับการประทับเวลาจาก RSA Timestamping Unit - ป้อนรหัสผ่านที่เก็บคีย์ที่พร้อมต์
ป้อนวลีรหัสผ่านสำหรับที่เก็บคีย์:
- ไฟล์นี้ได้รับการลงชื่อแล้ว คุณสามารถตรวจสอบลายเซ็นได้ด้วยคำสั่งต่อไปนี้:
jarsigner - ยืนยัน --verbose MY-JAR.jar
- หากไฟล์ของคุณลงชื่อสำเร็จแล้วเอาต์พุตของคำสั่งควรมีบรรทัดนี้:
s = ลายเซ็นได้รับการยืนยัน
การลงนามรหัส IV, OV และ EV ด้วย YubiKey
องค์ประกอบ
ติดตั้งไดรเวอร์ PKCS # 11 และสร้างไฟล์ eToken.cfg
Windows
- ติดตั้ง OpenSC โดยทำตามคำแนะนำใน OpenSC การเริ่มต้นอย่างรวดเร็วของ Windows.
- ค้นหาไดรเวอร์ OpenSC PKCS # 11 ตำแหน่งการติดตั้งเริ่มต้นคือ
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - สร้างไฟล์กำหนดค่าและบันทึกไว้ในตำแหน่งที่สะดวก (เช่นโฮมไดเร็กตอรี่ของคุณ) ชื่อไฟล์นั้นเป็นกฎเกณฑ์ แต่ในคู่มือนี้เราจะใช้
yubikey-pkcs11-java.cfg
. ไฟล์ควรมีข้อมูลต่อไปนี้:name = คำอธิบาย OpenSC-PKCS11 = SunPKCS11 ผ่านทาง OpenSC library = C: \ Program Files \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
MacOS
- การติดตั้ง OpenSC. ถ้าคุณใช้ homebrew ในฐานะผู้จัดการแพ็คเกจคุณสามารถติดตั้ง OpenSC ด้วยคำสั่งต่อไปนี้:
ชงติดตั้ง opensc
- ค้นหาไดรเวอร์ OpenSC PKCS # 11 หากคุณติดตั้งโดยใช้ Homebrew ไฟล์ควรจะอยู่ที่
/usr/local/lib/opensc-pkcs11.so
. - สร้างไฟล์กำหนดค่าและบันทึกไว้ในตำแหน่งที่สะดวก (เช่นโฮมไดเร็กตอรี่ของคุณ) ชื่อไฟล์นั้นเป็นกฎเกณฑ์ แต่ในคู่มือนี้เราจะใช้
yubikey-pkcs11-java.cfg
. ไฟล์ควรมีข้อมูลต่อไปนี้:ชื่อ = คำอธิบาย OpenSC-PKCS11 = SunPKCS11 ผ่านทางห้องสมุด OpenSC = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
เซ็นชื่อไฟล์ด้วย Jarsigner
- ใช้คำสั่งต่อไปนี้เพื่อเพิ่มลายเซ็นดิจิตอลที่ประทับเวลาลงใน
.jar
ไฟล์. (แทนที่MY-JAR.jar
ด้วยชื่อไฟล์จริงที่คุณใช้)jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore NONE -storetype PKCS11 MY-JAR.jar "ใบรับรองสำหรับการตรวจสอบ PIV"
- ป้อน YubiKey PIN ของคุณที่พร้อมท์ข้อความรหัสผ่าน
ป้อนวลีรหัสผ่านสำหรับที่เก็บคีย์:
- ไฟล์นี้ได้รับการลงชื่อแล้ว คุณสามารถตรวจสอบลายเซ็นได้ด้วยคำสั่งต่อไปนี้:
jarsigner - ยืนยัน --verbose MY-JAR.jar
- หากไฟล์ของคุณลงชื่อสำเร็จแล้วเอาต์พุตของคำสั่งควรมีบรรทัดนี้:
s = ลายเซ็นได้รับการยืนยัน