CodeSignTool เป็นยูทิลิตี้บรรทัดคำสั่ง Java แบบหลายแพลตฟอร์มที่ปลอดภัยและเน้นความเป็นส่วนตัวสำหรับการเซ็นชื่อจากระยะไกล Microsoft Authenticode และวัตถุโค้ด Java ด้วย eSigner ใบรับรองการลงนามรหัส EV แฮชของไฟล์จะถูกส่งไปยัง SSL.com เพื่อลงนามเพื่อไม่ให้รหัสนั้นถูกส่งไป เหมาะอย่างยิ่งในกรณีที่ต้องมีการเซ็นชื่อไฟล์ที่ละเอียดอ่อน แต่ไม่ควรส่งผ่านการต่อสายเพื่อเซ็นชื่อ CodeSignTool ยังเหมาะอย่างยิ่งสำหรับกระบวนการแบทช์อัตโนมัติสำหรับการเซ็นชื่อปริมาณมากหรือการรวมเข้ากับเวิร์กโฟลว์ไปป์ไลน์ CI/CD ที่มีอยู่
หากต้องการทราบประเภทไฟล์ทั้งหมดที่ CodeSignTool สามารถลงนามได้ โปรดดูบทความนี้: ประเภทไฟล์ที่รองรับ eSigner
หมายเหตุ: ใน CodeSignTool เวอร์ชัน v1.3.2 การลงนามไฟล์ mscab จะดำเนินการโดยใช้การประมวลผลในหน่วยความจำ แทนที่จะใช้ไดเร็กทอรี tmp
สำหรับคำแนะนำวิธีการ ทำการลงนามรหัส EV โดยอัตโนมัติโดยใช้ signtool.exe หรือ certutil.exe กรุณาตรวจสอบ วิธีการนี้.
หากคุณต้องการใช้ esigner ในการเซ็นเอกสารแทน โปรด อ้างถึงคู่มือ DocSignTool นี้.
การติดตั้ง CodeSignTool
ในการติดตั้ง CodeSignTool เวอร์ชันปัจจุบันเพียงดาวน์โหลดและคลายซิปไฟล์ที่ถูกต้องสำหรับระบบปฏิบัติการของคุณ:
โปรดทราบว่าการดาวน์โหลดของ Windows มีรันไทม์ Java แต่เวอร์ชัน Linux/macOS ต้องมีการติดตั้งรันไทม์ Java บนคอมพิวเตอร์ของคุณ คำสั่งเวอร์ชัน Windows เป็นไฟล์แบตช์ (CodeSignTool.bat
) และเวอร์ชัน Linux / macOS คือเชลล์สคริปต์ (CodeSignTool.sh
).
ภาพรวมการใช้งาน CodeSignTool
การใช้งาน: CodeSignTool [-hV] [COMMAND] [PARAMETERS]
ตัวเลือก:
-h
,--help
: แสดงข้อความช่วยเหลือและออก-V
,--version
: แสดงข้อมูลเวอร์ชันและออก
คำสั่ง:
get_credential_ids
: ส่งออกรายการรหัสประจำตัว eSigner ที่เชื่อมโยงกับผู้ใช้รายใดรายหนึ่งcredential_info
: คีย์เอาต์พุตและข้อมูลใบรับรองที่เกี่ยวข้องกับรหัสประจำตัวsign
: เซ็นชื่อและรหัสประทับเวลาวัตถุbatch_sign
: ลงชื่อและประทับเวลาออบเจ็กต์โค้ดหลายรายการด้วย OTP เดียวhash
: ประมวลผลแฮชล่วงหน้าเพื่อใช้ในภายหลังกับbatch_hash_sign
คำสั่งbatch_sign_hash
: ลงชื่อเข้าใช้แฮช (es) ที่คำนวณไว้ล่วงหน้าด้วยhash
คำสั่ง
พารามิเตอร์:
-access_token=<TOKEN>
: OAuth โทเค็นการเข้าถึง.-credential_id=<CREDENTIAL_ID>
: รหัสประจำตัวสำหรับใบรับรองการลงนาม-input_dir_path=<PATH>
: ไดเร็กทอรีอินพุตสำหรับอ็อบเจ็กต์โค้ดที่จะลงนาม คำนวณแฮช หรือเลือกไฟล์ที่ไม่ได้ลงชื่อและแฮชที่เกี่ยวข้องสำหรับการเซ็นชื่อ-input_file_path=<PATH>
: เส้นทางของรหัสวัตถุที่จะลงนาม-otp=<OTP>
: ค่า OAuth OTP จากแอปตรวจสอบสิทธิ์-output_dir_path=<PATH>
: ไดเร็กทอรีที่จะเขียนโค้ดอ็อบเจ็กต์-password=<PASSWORD>
: รหัสผ่านบัญชี SSL.com-program_name=<PROGRAM_NAME>
: ชื่อโปรแกรม (สำหรับโปรแกรมติดตั้ง MSI เท่านั้น)-totp_secret=<TOTP_SECRET>
: OAuth ความลับของ TOTP-username=<USERNAME>
: ชื่อผู้ใช้บัญชี SSL.com-override="true"
: เขียนทับไฟล์ที่ลงชื่อ
-password="P!@^^ssword12"
).คำสั่ง CodeSignTool
get_credential_ids
ส่งออกรายการรหัสประจำตัว eSigner ที่เชื่อมโยงกับผู้ใช้รายใดรายหนึ่ง พารามิเตอร์ -username
และ -password
จะต้อง
การใช้งาน: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>
ตัวอย่าง:
CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41" Credential ID(s): - fe537ace-e132-52a9-c2e7-egcd2ac3f1e6
เข้า CodeSignTool get_credential_ids
หากไม่มีพารามิเตอร์ที่ต้องการจะแสดงข้อมูลการใช้งานสำหรับคำสั่ง
ข้อมูลประจำตัว_info
คีย์เอาต์พุตและข้อมูลใบรับรองที่เกี่ยวข้องกับ ID ข้อมูลรับรอง พารามิเตอร์ -credential_id
, -username
และ -password
จะต้อง
การใช้งาน: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>
ตัวอย่าง:
CodeSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" EVCS Certificate Subject Information: - Subject DN: OID.1.3.6.1.4.1.311.60.2.1.3 .1.3.6.1.4.1.311.60.2.1.2=US, OID.2.5.4.15=Nevada, OID.20081614243=Private Organization, CN=SSL Corp, SERIALNUMBER=NV26, O=SSL Corp, L=Houston, ST=Texas, C=US - ใบรับรองหมดอายุ: จันทร์ 21 กุมภาพันธ์ 21:37:2024 EST 3 - ผู้ออก DN: CN=SSL.com EV Code Signing Intermediate CA RSA RXNUMX, O=SSL Corp, L=Houston, ST=Texas , C=US
เข้า CodeSignTool credential_info
หากไม่มีพารามิเตอร์ที่ต้องการจะแสดงข้อมูลการใช้งานสำหรับคำสั่ง
scan_code
เปิดใช้งานการสแกนมัลแวร์ด้วยการลงนามล่วงหน้า ซึ่งจะสแกนไฟล์ของคุณเพื่อหามัลแวร์ที่อาจเกิดขึ้นได้ เพื่อหลีกเลี่ยงการบุกรุกโค้ด และป้องกันการลงนามโค้ดหากตรวจพบมัลแวร์
การใช้งาน: CodeSignTool scan_code [-hV] -credential_id=<credentialId> -input_file_path=<inputFilePath> -password=<password> [-program_name=<programName>] -username=<username>
สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับประโยชน์ด้านความปลอดภัยของบริการสแกนมัลแวร์ของ SSL.com คุณสามารถเยี่ยมชมเราได้ที่ หน้าเฉพาะ.
ลงชื่อ
เซ็นชื่อและรหัสประทับเวลาวัตถุ พารามิเตอร์ -username
, -password
และ -input_file_path
จะต้อง -credential_id
จำเป็นสำหรับผู้ใช้ที่มีใบรับรองการลงนามรหัส eSigner มากกว่าหนึ่งรายการเท่านั้น -output_dir_path
, -program_name
และ -totp_secret
เป็นตัวเลือก
การใช้งาน: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
พารามิเตอร์เสริม:
- If
-credential_id
ถูกละไว้และผู้ใช้มีใบรับรองการลงนามรหัส eSigner เพียงใบเดียว CodeSignTool จะเป็นค่าเริ่มต้น หากผู้ใช้มีใบรับรองการลงนามรหัสมากกว่าหนึ่งรายการจำเป็นต้องมีพารามิเตอร์นี้ - If
-output_dir_path
ถูกละไว้ไฟล์ที่ระบุใน-input_file_path
จะถูกเขียนทับด้วยไฟล์ที่เซ็นชื่อ CodeSignTool จะแจ้งผู้ใช้ก่อนที่จะเขียนทับไฟล์ - If
-program_name
ปรากฏขึ้นเมื่อลงนามโปรแกรมติดตั้ง MSI ค่าจะแสดงในกล่องโต้ตอบการยืนยันเป็นชื่อโปรแกรม - If
-totp_secret
ปัจจุบัน CodeSignTool จะคำนวณ OTP ตามเวลาสำหรับการลงนามเพื่อให้สามารถใช้เครื่องมือได้โดยอัตโนมัติ หากไม่มีพารามิเตอร์นี้ผู้ใช้จะได้รับแจ้งให้ป้อน OTP ด้วยตนเอง
ตัวอย่าง:
รายการ OTP ด้วยตนเอง:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=signed -input_file_path=test.exe Enter the OTP - กด Enter เพื่อดำเนินการต่อ : 884646 เซ็นรหัสสำเร็จแล้ว: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
การสร้าง OTP อัตโนมัติ:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
เข้า CodeSignTool sign
หากไม่มีพารามิเตอร์ที่ต้องการจะแสดงข้อมูลการใช้งานสำหรับคำสั่ง
Error: invalid otp
เมื่อพยายามเซ็นชื่อไฟล์อาจเกิดจากปัญหาเหล่านี้อย่างน้อยหนึ่งอย่าง:
- รหัส QR ที่คุณสแกนในแอปตรวจสอบสิทธิ์ของคุณไม่ตรงกับชื่อผู้ใช้รหัสผ่านและ / หรือรหัสข้อมูลรับรองจากคำสั่งของคุณ สิ่งนี้อาจเกิดขึ้นได้หาก:
- คุณมีบัญชีหลายบัญชีที่กำหนดค่าไว้สำหรับ 2FA บนอุปกรณ์ของคุณและเลือกบัญชีที่ไม่ถูกต้อง
- คุณกำลังพยายามใช้ข้อมูลรับรองการเข้าสู่ระบบของคุณสำหรับไฟล์ ใบรับรองที่ใช้ร่วมกันแต่สแกนโค้ด QR ที่เพื่อนร่วมทีมแชร์จากบัญชีของพวกเขา
- OTP ที่คุณป้อนหมดอายุแล้ว
- คำสั่งของคุณมีข้อมูลลับ TOTP ที่ไม่ถูกต้อง
แบทช์_เซ็น
ลงชื่อและประทับเวลาไฟล์โค้ดสูงสุด 100 ไฟล์ด้วย OTP เดียว พารามิเตอร์ -username
, -password
และ -input_dir_path
จะต้อง -credential_id
จำเป็นสำหรับผู้ใช้ที่มีใบรับรองการลงนามรหัส eSigner มากกว่าหนึ่งรายการเท่านั้น -output_dir_path
, -program_name
และ -totp_secret
เป็นตัวเลือก
การใช้งาน: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
หากผู้ใช้ต้องการดำเนินการเซ็นชื่อเป็นชุดพร้อมการตรวจสอบมัลแวร์ จะต้องสแกนออบเจ็กต์โค้ดแต่ละรายการในชุดก่อนด้วย scan_code
คำสั่งแล้วหลังจากนั้น. batch_sign
สามารถรันคำสั่งได้
พารามิเตอร์เสริม:
- If
-credential_id
ถูกละไว้และผู้ใช้มีใบรับรองการลงนามรหัส eSigner เพียงใบเดียว CodeSignTool จะเป็นค่าเริ่มต้น หากผู้ใช้มีใบรับรองการลงนามรหัสมากกว่าหนึ่งรายการจำเป็นต้องมีพารามิเตอร์นี้ - If
-output_dir_path
ถูกละไว้ ไฟล์ที่ระบุใน-input_dir_path
จะถูกเขียนทับด้วยไฟล์ที่ลงนามแล้ว CodeSignTool จะแจ้งให้ผู้ใช้ทราบก่อนที่จะเขียนทับไฟล์ - If
-program_name
ปรากฏขึ้นเมื่อลงนามโปรแกรมติดตั้ง MSI ค่าจะแสดงในกล่องโต้ตอบการยืนยันเป็นชื่อโปรแกรม - If
-totp_secret
ปัจจุบัน CodeSignTool จะคำนวณ OTP ตามเวลาสำหรับการลงนามเพื่อให้สามารถใช้เครื่องมือได้โดยอัตโนมัติ หากไม่มีพารามิเตอร์นี้ผู้ใช้จะได้รับแจ้งให้ป้อน OTP ด้วยตนเอง
ตัวอย่าง:
CodeSignTool batch_sign -username=john.doe@example.com -password="P0z9@lxo41" -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output ป้อน OTP455145 - กด Enter เพื่อดำเนินการต่อ: คำสั่งแบทช์ดำเนินการสำเร็จ ไดเร็กทอรีเอาต์พุตสำหรับไฟล์ที่ลงนาม: output
เข้า CodeSignTool batch_sign
หากไม่มีพารามิเตอร์ที่ต้องการจะแสดงข้อมูลการใช้งานสำหรับคำสั่ง
กัญชา
คำนวณแฮชล่วงหน้าเพื่อใช้ในภายหลังกับ batch_hash_sign
คำสั่ง พารามิเตอร์ -input_dir_path
จำเป็นต้องมี -program_name
เป็นตัวเลือก
การใช้งาน: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]
พารามิเตอร์เสริม:
- If
-program_name
ปรากฏขึ้นเมื่อลงนามโปรแกรมติดตั้ง MSI ค่าจะแสดงในกล่องโต้ตอบการยืนยันเป็นชื่อโปรแกรม
ตัวอย่าง:
CodeSignTool hash -input_dir_path=คำสั่งแฮชอินพุตดำเนินการสำเร็จ สร้างไฟล์แฮชที่: input
เข้า CodeSignTool hash
หากไม่มีพารามิเตอร์ที่ต้องการจะแสดงข้อมูลการใช้งานสำหรับคำสั่ง
Batch_sign_hash
เข้าสู่ระบบแฮช (es) ที่คำนวณไว้ล่วงหน้าด้วย hash
คำสั่ง พารามิเตอร์ -access_token
, input_dir_path
, -otp
และ output_dir_path
จะต้อง -credential_id
จำเป็นสำหรับผู้ใช้ที่มีใบรับรองการลงนามรหัส eSigner มากกว่าหนึ่งรายการเท่านั้น
การใช้งาน: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>
พารามิเตอร์เสริม:
- If
-credential_id
ถูกละไว้และผู้ใช้มีใบรับรองการลงนามรหัส eSigner เพียงใบเดียว CodeSignTool จะเป็นค่าเริ่มต้น หากผู้ใช้มีใบรับรองการลงนามรหัสมากกว่าหนึ่งรายการจำเป็นต้องมีพารามิเตอร์นี้
ตัวอย่าง:
CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU 0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9 hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82 4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9 qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9 -c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392 Batch sign hash command executed successfully. Output directory for signed files: output
เข้า CodeSignTool batch_sign_hash
หากไม่มีพารามิเตอร์ที่ต้องการจะแสดงข้อมูลการใช้งานสำหรับคำสั่ง