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ắ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ó | 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 | -f | Có | Đường dẫn đến tệp cần ký. Ví dụ: -f “app.dll”. |
| --out | -o | Khô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. |
| --override | Không | Có ghi đè đường dẫn 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ủ tem thời gian dùng cho chữ ký SHA1. Đặt chuỗi rỗng "" để tắt. | |
| --timestamp-rfc3161 | Không | URL máy chủ tem thời gian RFC 3161 dùng cho chữ ký SHA256. Đặt 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à 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

