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 ของเซิร์ฟเวอร์ timestamp ที่ใช้สำหรับการลงนาม SHA1 ตั้งค่าเป็นสตริงว่าง "" เพื่อปิดใช้งาน
--timestamp-rfc3161ไม่ใช่URL ของเซิร์ฟเวอร์ timestamp ตาม RFC 3161 ที่ใช้สำหรับการลงนาม SHA256 ตั้งค่าเป็นสตริงว่าง "" เพื่อปิดใช้งาน
--desc-nไม่ใช่ข้อมูลคำอธิบายโปรแกรม ข้อมูลนี้จะฝังอยู่ในลายเซ็นและอาจปรากฏในคำเตือนความปลอดภัยของระบบดังนี้: desc
--url-uไม่ใช่ลิงก์ข้อมูลอย่างเป็นทางการของโปรแกรม
--verifyไม่ใช่ตรวจสอบทันทีหลังลงนามว่าลายเซ็นไฟล์ถูกต้องหรือไม่
--dry-runไม่ใช่โหมดทดลองใช้ ในโหมดนี้จะใช้ใบรับรองแบบ self-signed เพื่อตรวจสอบขั้นตอนการลงนาม คีย์การเข้าถึงและหมายเลขการสมัครใช้บริการที่เกี่ยวข้องสามารถกรอกค่าใดก็ได้

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

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

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