Hướng dẫn sử dụng công cụ dòng lệnh SignTool
SignTool là ứng dụng khách dòng lệnh của dịch vụ ký mã từ xa sslTrus, dùng để thực hiện thao tác ký mã trong terminal hoặc tập lệnh tự động hóa.
Bắt đầu nhanh
Dưới đây là ví dụ 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 đầy đủ về lệnh.
./signtool sign -h
Phân tích các tham số cốt lõi
| Tham số | Viết tắt | Bắt buộc | Mô tả và ví dụ |
|---|---|---|---|
| --access-key | -k | Có | Khóa truy cập API. Cũng có thể đặt qua biến môi trường SIGNTOOL_ACCESS_KEY. |
| --access-secret | -s | Có | Khóa truy cập API. Cũng có thể đặt qua biến môi trường SIGNTOOL_ACCESS_SECRET. |
| --cert-code | -c | Có | Mã đăng ký của dịch vụ ký mã từ xa, dùng để chỉ định chứng chỉ ký và tính phí. |
| --file | -f | Có | Đường dẫn của tệp cần ký. Ví dụ: -f “app.dll”. |
| --out | -o | Không | Đường dẫn của tệp đầu ra. Mặc định thêm .signed vào sau tên tệp gốc. Lưu ý: nếu tệp đã tồn tại, thao tác sẽ thất bại. |
| --override | Không | Có ghi đè đường dẫn của tệp cần ký hay không. Mặc định là false. | |
| --sha1 | -1 | Không | Bật ký bằng thuật toán SHA1 (dùng để tương thích với hệ thống cũ). |
| --sha2 | -2 | Không | Bật ký bằng thuật toán SHA256 (tiêu chuẩn hiện đại, khuyến nghị bật). |
| --nest | Không | Có 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: ![]() | |
| --timestamp | Không | URL máy chủ dấu thời gian dùng cho chữ ký SHA1. Đặt thành chuỗi rỗng "" để tắt. | |
| --timestamp-rfc3161 | Không | URL máy chủ dấu thời gian RFC 3161 dùng cho chữ ký SHA256. Đặt thành chuỗi rỗng "" để tắt. | |
| --desc | -n | Không | Thô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: ![]() |
| --url | -u | Không | Liên kết thông tin chính thức của chương trình. |
| --verify | Không | Xác minh ngay chữ ký tệp có hợp lệ hay không sau khi ký. | |
| --dry-run | Không | Chế độ 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à mã đăng ký tương ứng có thể điền tùy ý. |
Về tham số kiểu boolean
Đối với các tham số nhận giá trị true/false (như --sha1, --nest), phải 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

