ลงชื่อ เป็นเครื่องมือ Java แบบโอเพนซอร์สที่ไม่ขึ้นกับแพลตฟอร์มสำหรับการลงนามรหัส Microsoft Authenticode Jsign นั้นง่ายต่อการรวมเข้ากับระบบบิลด์เช่น Maven, Gradle และ Ant หรือสามารถใช้โดยตรงจากบรรทัดคำสั่ง
ในวิธีการนี้เราจะพูดถึงการใช้ ลงชื่อ จากบรรทัดคำสั่ง Linux สำหรับ การลงนามรหัส OV / IV และ การลงนามรหัส EV. เนื่องจาก Jsign ใช้ Java คุณจึงสามารถใช้กับระบบ Windows และ MacOS ได้
ติดตั้ง Jsign
ก่อนอื่นคุณจะต้องดาวน์โหลดและติดตั้ง Jsign เว็บไซต์ Jsign รวมลิงค์ไปยังแพ็คเกจ Debian และ RPM เพื่อการติดตั้งที่ง่ายดายบนระบบ Linux ยอดนิยมตลอดจนไฟล์ .jar
ไฟล์
การเซ็นรหัส OV / IV
สำหรับการลงนามโค้ด OV/IV คุณสามารถใช้ใบรับรองที่จัดเก็บไว้ในที่เก็บคีย์ Java หรือไฟล์ PKCS#12 (PFX) ในตัวอย่างโค้ดทั้งหมดด้านล่าง ให้แทนที่ค่าที่แสดงใน ALL-CAPS ด้วยค่าจริงของคุณ
- ขั้นแรกให้ใช้ไฟล์
keytool
คำสั่งเพื่อรับไฟล์alias
มูลค่าที่จะใช้เมื่อเซ็นชื่อ:keytool -list -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-PASSWORD - ประเภทร้านค้า
- ตรวจสอบผลลัพธ์ของไฟล์
keytool
คำสั่งสำหรับบรรทัดที่ขึ้นต้นด้วยAlias name:
.ประเภทที่เก็บคีย์: PKCS12 ผู้ให้บริการที่เก็บคีย์: SUN ที่เก็บคีย์ของคุณมี 1 รายการชื่อนามแฝง: 1 วันที่สร้าง: 18 ม.ค. 2021 ประเภทรายการ: PrivateKeyEntry ความยาวสายโซ่ใบรับรอง: 4 ...
ในตัวอย่างข้างต้น
Alias name
is1
. - ใช้คำสั่งดังต่อไปนี้เพื่อลงนามและประทับเวลาไฟล์:
jsign
คำสั่งที่ติดตั้งทั้งระบบ:jsign --keystore KEYSTORE.p12 --alias ALIAS-NAME -- ประเภทร้านค้า PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
- กับ Jsigner
.jar
ไฟล์:java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO- ลงชื่อ
- หากคำสั่งของคุณสำเร็จคุณจะเห็นผลลัพธ์ดังต่อไปนี้:
การเพิ่มลายเซ็น Authenticode ไปยัง example.exe
หากคุณพบข้อผิดพลาดนี้:
The timestamp certificate does not meet a minimum public key length requirement
คุณควรติดต่อผู้จำหน่ายซอฟต์แวร์ของคุณเพื่ออนุญาตการประทับเวลาจากคีย์ ECDSAหากผู้จำหน่ายซอฟต์แวร์ของคุณไม่สามารถอนุญาตให้ใช้ตำแหน่งข้อมูลปกติได้ คุณสามารถใช้ตำแหน่งข้อมูลเดิมนี้ได้
http://ts.ssl.com/legacy
เพื่อรับการประทับเวลาจาก RSA Timestamping Unitการลงนามรหัส EV
คุณยังสามารถใช้ Jsign กับใบรับรองการลงนามรหัส EV ตัวอย่างที่นี่ใช้ SSL.com ใบรับรองการลงนามรหัส EV ติดตั้งบนไฟล์ โทเค็น USB ของคีย์ความปลอดภัยที่ตรวจสอบแล้ว FIPS 140-2.
- ขั้นแรกตรวจสอบให้แน่ใจว่า OpenSC ติดตั้งบนระบบของคุณเพื่อให้สามารถสื่อสารกับโทเค็นของคุณผ่าน PKCS # 11 API บน Debian-based distros เช่น Ubuntu คุณสามารถติดตั้ง OpenSC ด้วย
apt
:sudo apt ติดตั้ง opensc
- จากนั้นสร้างไฟล์กำหนดค่า ชื่อของไฟล์เป็นไปตามอำเภอใจ แต่สำหรับตัวอย่างคำสั่งด้านล่างเราจะใช้
eToken.cfg
. โปรดทราบว่าเส้นทางไปยังopensc-pkcs11.so
อาจแตกต่างกันไปในการติดตั้ง OpenSC ของคุณดังนั้นโปรดตรวจสอบก่อนสร้างไฟล์กำหนดค่าname = OpenSC-PKCS11 description = SunPKCS11 ผ่านไลบรารี OpenSC = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
- ใช้
keytool
คำสั่งเพื่อรับไฟล์alias
มูลค่าที่จะใช้เมื่อเซ็นชื่อ:keytool -list -v -keystore ไม่มี -storetype PKCS11 -storepass TOKEN-PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
- ตรวจสอบผลลัพธ์ของไฟล์
keytool
คำสั่งสำหรับบรรทัดที่ขึ้นต้นด้วยAlias name:
. หากโทเค็นของคุณมีใบรับรองหลายรายการให้ตรวจสอบวันที่ที่มีผลบังคับใช้และผู้ออกใบรับรองในผลลัพธ์เทียบกับใบรับรองของคุณ โปรดทราบว่าใบรับรองการลงนามรหัส EV ที่ออกบน YubiKey จาก SSL.com ควรมีชื่อแทนเป็นCertificate for PIV Authentication
.ชื่อนามแฝง: Certificate for PIV Authentication Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate [1]: Owner: OID.1.3.6.1.4.1.311.60.2.1.3 = US, OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 = เนวาดา, OID.20081614243 = องค์กรเอกชน, CN = SSL Corp, SERIALNUMBER = NV2, O = SSL Corp, L = Houston, ST = TX, C = US ผู้ออก: CN = SSL.com EV Code Signing Intermediate CA RSA R7299, O = SSL Corp, L = Houston, ST = Texas, C = US Serial number: 93f57a3bac6570c781580f63172e17 ใช้ได้ตั้งแต่: ศุกร์ 12 เมษายน 46:04:2020 EDT 17 ถึง: เสาร์เมษายน 12 46:04:2021 EDT XNUMX
- ใช้คำสั่งดังต่อไปนี้เพื่อลงนามและประทับเวลาไฟล์:
jsign
คำสั่งที่ติดตั้งทั้งระบบ:jsign --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
- กับ Jsigner
.jar
ไฟล์:java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE -เพื่อเข้าสู่ระบบ
- หากคำสั่งของคุณสำเร็จคุณจะเห็นผลลัพธ์ดังต่อไปนี้:
การเพิ่มลายเซ็น Authenticode ไปยัง example.exe
หากคุณพบข้อผิดพลาดนี้:
The timestamp certificate does not meet a minimum public key length requirement
คุณควรติดต่อผู้จำหน่ายซอฟต์แวร์ของคุณเพื่ออนุญาตการประทับเวลาจากคีย์ ECDSAหากผู้จำหน่ายซอฟต์แวร์ของคุณไม่สามารถอนุญาตให้ใช้ตำแหน่งข้อมูลปกติได้ คุณสามารถใช้ตำแหน่งข้อมูลเดิมนี้ได้
http://ts.ssl.com/legacy
เพื่อรับการประทับเวลาจาก RSA Timestamping Unitตรวจสอบลายเซ็นดิจิทัล
- คุณสามารถตรวจสอบว่าลายเซ็นดิจิทัลของคุณถูกต้องโดยดูรายละเอียดลายเซ็นใน Windows
- คุณยังสามารถใช้ เครื่องมือเข้าสู่ระบบ ใน Windows เพื่อตรวจสอบลายเซ็นดิจิทัล
signtool.exe ตรวจสอบ / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' ไฟล์: C: \ Users \ Aaron Russell \ Desktop \ example.exe Index Algorithm Timestamp =========== ============================= 0 sha256 RFC3161 ตรวจสอบเรียบร้อยแล้ว: C: \ Users \ Aaron Russell \ Desktop \ example.exe