Chuyển tới nội dung chính

Hướng dẫn sử dụng công cụ dòng lệnh SignTool

SignTool là máy khách dòng lệnh của dịch vụ ký mã từ xa sslTrus, được sử dụng để thực hiện thao tác ký mã trong terminal hoặc script tự động hóa.

Bắt đầu nhanh​

Dưới đây là ví dụ về lệnh ký cơ bản nhất, bạn có thể sao chép và sửa đổi theo chú thích để sử dụng:

# 视情况而定,是否需要开启调试模式
#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

Giải thích chi tiết lệnh​

Trước khi bắt đầu, bạn cần chuẩn bị ba thông tin sau:

Xem trợ giúp​

Sử dụng tham số -h hoặc --help để xem trợ giúp lệnh đầy đủ.

./signtool sign -h

Phân tích tham số cốt lõi​

Tham sốViết tắtBắt buộcMô tả và ví dụ
--access-key-kCóKhóa truy cập API. Cũng có thể đặt qua biến môi trường SIGNTOOL_ACCESS_KEY.
--access-secret-sCóKhóa truy cập API. Cũng có thể đặt qua biến môi trường SIGNTOOL_ACCESS_SECRET.
--cert-code-cCóSố đăng ký của dịch vụ ký mã từ xa, dùng để chỉ định chứng chỉ ký và tính phí.
--file-fCóĐường dẫn đến tệp cần ký. Ví dụ: -f “app.dll”.
--out-oKhôngĐường dẫn tệp đầu ra. Mặc định thêm .signed vào sau tên tệp gốc. Quan trọng: nếu tệp đã tồn tại, thao tác sẽ thất bại.
--overrideKhôngCó ghi đè đường dẫn tệp cần ký hay không. Mặc định là false.
--sha1-1KhôngBật ký bằng thuật toán SHA1 (dùng để tương thích với hệ thống cũ).
--sha2-2KhôngBật ký bằng thuật toán SHA256 (tiêu chuẩn hiện đại, khuyến nghị bật).
--nestKhôngCó ký lồng hay không. Khi tệp đã có chữ ký, --nest=true (mặc định) sẽ giữ chữ ký cũ và thêm chữ ký mới; false sẽ xóa chữ ký cũ. So sánh hiệu quả như sau: nest
--timestampKhôngURL máy chủ tem thời gian dùng cho chữ ký SHA1. Đặt chuỗi rỗng "" để tắt.
--timestamp-rfc3161KhôngURL máy chủ tem thời gian RFC 3161 dùng cho chữ ký SHA256. Đặt chuỗi rỗng "" để tắt.
--desc-nKhôngThông tin mô tả chương trình. Thông tin này sẽ được nhúng vào chữ ký và có thể hiển thị trong cảnh báo bảo mật hệ thống như sau: desc
--url-uKhôngLiên kết thông tin chính thức của chương trình.
--verifyKhôngXác minh ngay chữ ký tệp có hợp lệ hay không sau khi ký.
--dry-runKhôngChế độ dùng thử. Ở chế độ này sẽ dùng chứng chỉ tự ký để xác minh quy trình ký, khóa truy cập và số đăng ký tương ứng có thể điền tùy ý.

Về tham số boolean​

Đối với các tham số nhận giá trị true/false (chẳng hạn như --sha1, --nest), phải sử dụng định dạng tham số=giá trị, không hỗ trợ phân tách bằng dấu cách.

  • Đúng: --sha1=true --sha2=false
  • Sai: --sha1 true --sha2 false