Skip to main content

คู่มือการใช้เครื่องมือบรรทัดคำสั่ง SignTool

SignTool เป็นไคลเอนต์บรรทัดคำสั่งของบริการลงนามโค้ดระยะไกล sslTrus ใช้สำหรับดำเนินการลงนามโค้ดในเทอร์มินัลหรือสคริปต์อัตโนมัติ

เริ่มต้นอย่างรวดเร็ว

ต่อไปนี้คือตัวอย่างคำสั่งลงนามพื้นฐานที่สุด ซึ่งคุณสามารถคัดลอกและแก้ไขตามหมายเหตุเพื่อนำไปใช้:

# 视情况而定,是否需要开启调试模式
#export DEBUG=1

# 使用环境变量配置 AK、SK 以及证书订阅号
export SIGNTOOL_ACCESS_KEY='' SIGNTOOL_ACCESS_SECRET='' SIGNTOOL_CERT_CODE=''

# 签名
./signtool sign \
--dry-run \
--access-key=$SIGNTOOL_ACCESS_KEY \
--access-secret=$SIGNTOOL_ACCESS_SECRET \
--cert-code=$SIGNTOOL_CERT_CODE \
--file=app-unsigned.exe \
--out=app.exe \
--sha1=false \
--sha2=true \
--timestamp-rfc3161 http://timestamp.acs.microsoft.com

คำอธิบายคำสั่งโดยละเอียด

ก่อนเริ่มต้น คุณต้องเตรียมข้อมูลสามรายการต่อไปนี้ให้พร้อม:

ดูวิธีใช้

ใช้พารามิเตอร์ -h หรือ --help เพื่อดูวิธีใช้คำสั่งแบบเต็ม

./signtool sign -h

การวิเคราะห์พารามิเตอร์หลัก

พารามิเตอร์ตัวย่อจำเป็นหรือไม่คำอธิบายและตัวอย่าง
--access-key-kใช่คีย์การเข้าถึง API สามารถตั้งค่าผ่านตัวแปรสภาพแวดล้อม SIGNTOOL_ACCESS_KEY ได้เช่นกัน
--access-secret-sใช่คีย์ลับการเข้าถึง API สามารถตั้งค่าผ่านตัวแปรสภาพแวดล้อม SIGNTOOL_ACCESS_SECRET ได้เช่นกัน
--cert-code-cใช่หมายเลขการสมัครใช้บริการของบริการลงนามโค้ดระยะไกล ใช้สำหรับระบุใบรับรองการลงนามและการคิดค่าบริการ
--file-fใช่พาธของไฟล์ที่ต้องการลงนาม เช่น -f “app.dll”
--out-oไม่พาธของไฟล์เอาต์พุต ค่าเริ่มต้นคือเพิ่ม .signed ต่อท้ายชื่อไฟล์ต้นฉบับ สำคัญ: หากไฟล์มีอยู่แล้ว การดำเนินการจะล้มเหลว
--overrideไม่ระบุว่าจะเขียนทับพาธของไฟล์ที่ต้องการลงนามหรือไม่ ค่าเริ่มต้นคือ false
--sha1-1ไม่เปิดใช้การลงนามด้วยอัลกอริทึม SHA1 (ใช้สำหรับความเข้ากันได้กับระบบเก่า)
--sha2-2ไม่เปิดใช้การลงนามด้วยอัลกอริทึม SHA256 (มาตรฐานสมัยใหม่ แนะนำให้เปิดใช้)
--nestไม่ระบุว่าจะลงนามแบบซ้อนหรือไม่ เมื่อไฟล์มีลายเซ็นอยู่แล้ว --nest=true (ค่าเริ่มต้น) จะเก็บลายเซ็นเดิมไว้และเพิ่มลายเซ็นใหม่ ส่วน false จะลบลายเซ็นเก่า ผลการเปรียบเทียบดังนี้: nest
--timestampไม่URL ของเซิร์ฟเวอร์ประทับเวลาที่ใช้สำหรับลายเซ็น SHA1 ตั้งค่าเป็นสตริงว่าง "" เพื่อปิดใช้งานได้
--timestamp-rfc3161ไม่URL ของเซิร์ฟเวอร์ประทับเวลา RFC 3161 ที่ใช้สำหรับลายเซ็น SHA256 ตั้งค่าเป็นสตริงว่าง "" เพื่อปิดใช้งานได้
--desc-nไม่ข้อมูลคำอธิบายโปรแกรม ข้อมูลนี้จะฝังอยู่ในลายเซ็น และอาจแสดงในข้อความแจ้งเตือนความปลอดภัยของระบบดังนี้: desc
--url-uไม่ลิงก์ข้อมูลอย่างเป็นทางการของโปรแกรม
--verifyไม่ตรวจสอบความถูกต้องของลายเซ็นไฟล์ทันทีหลังจากการลงนาม
--dry-runไม่โหมดทดลองใช้ ในโหมดนี้จะใช้ใบรับรองแบบลงนามด้วยตนเองเพื่อตรวจสอบกระบวนการลงนาม โดยคีย์การเข้าถึงและหมายเลขการสมัครใช้บริการที่เกี่ยวข้องสามารถกรอกอะไรก็ได้

เกี่ยวกับพารามิเตอร์ค่าบูลีน

สำหรับพารามิเตอร์ที่รับค่า true/false (เช่น --sha1, --nest) ต้องใช้รูปแบบ พารามิเตอร์=ค่า ไม่รองรับการคั่นด้วยช่องว่าง

  • ถูกต้อง: --sha1=true --sha2=false
  • ไม่ถูกต้อง: --sha1 true --sha2 false