Code Signing med SignTool och AzureSignTool
signtool.exe är Microsofts officiella signeringsverktyg, inkluderat i Windows SDK. AzureSignTool är en gratis, open source-tillägg som lägger till Azure Key Vault-stöd. Tillsammans täcker de de vanligaste Windows code signing-arbetsflödena.
Båda verktygen signerar alla standard Windows-filtyper: .exe, .dll, .msi, .msix, .cab, .ps1, .appx och .sys. Välj signtool.exe för USB-token och lokal certificate store, eller AzureSignTool för molnbaserad signering med Azure Key Vault.
Vad är signtool.exe?
Microsofts officiella kommandoradsverktyg för Authenticode-signering. Inkluderat i Windows SDK (Windows 10/11 SDK). Signerar alla standard Windows-filtyper: .exe, .dll, .msi, .msix, .cab, .ps1, .appx, .sys. Fungerar direkt med USB-tokens (SafeNet eToken) via Windows certificate store.
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a "MyApp.exe"
Vad är AzureSignTool?
AzureSignTool ↗ är ett open source .NET-verktyg som utvidgar signtool-konceptet till Azure Key Vault. Autentiserar via service principal, managed identity eller Azure CLI. Ersätter signtool.exe helt för Azure Key Vault-baserad signering. Installeras via:
dotnet tool install --global AzureSignTool
Exempel med Azure Key Vault:
AzureSignTool sign \ -kvu https://your-vault.vault.azure.net \ -kvc YourCertName \ -kvt your-tenant-id \ -kvi your-client-id \ -kvs your-client-secret \ -fd sha256 \ -tr http://timestamp.digicert.com \ -td sha256 \ "MyApp.exe"
SignTool vs AzureSignTool
| signtool.exe | AzureSignTool | |
|---|---|---|
| Installation | Inkluderat i Windows SDK | .NET tool (dotnet tool install) |
| Nyckellagring | USB-tokens + lokal certificate store | Azure Key Vault HSM-nycklar |
| Plattform | Bara Windows | Cross-platform (.NET) |
| Azure-stöd | Nej | Ja, Azure Key Vault |
| CI/CD-pipelines | Kräver fysisk token eller lokal cert | Stöder pipelines direkt |
| Pris | Gratis (del av Windows SDK) | Gratis och open source |
Vanliga signtool-kommandon
Signera med USB-token (automatiskt val av certifikat)
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a "MyApp.exe"
Signera med specifikt certifikat (SHA1-thumbprint)
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /sha1 ABCDEF1234567890 "MyApp.exe"
Verifiera signatur
signtool verify /pa /v "MyApp.exe"
Signera flera filer
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a *.exe
Timestamp-servrar
Använd alltid /tr (RFC 3161), inte /t (äldre Authenticode-format). RFC 3161 är mer robust och rekommenderat av alla CA:er.
DigiCert: http://timestamp.digicert.com GlobalSign: http://timestamp.globalsign.com/tsa/r6advanced1
Timestamping säkerställer att signaturer förblir giltiga efter att certifikatet har löpt ut. Utan timestamp blir signaturen ogiltig när certifikatet löper ut.
CI/CD pipeline-exempel
AzureSignTool integreras i Azure DevOps, GitHub Actions och GitLab CI. Här är exempel för de vanligaste pipelines:
Azure DevOps
- task: DotNetCoreCLI@2
displayName: 'Install AzureSignTool'
inputs:
command: 'custom'
custom: 'tool'
arguments: 'install --global AzureSignTool'
- script: |
AzureSignTool sign \
-kvu $(KeyVaultUrl) \
-kvc $(CertificateName) \
-kvt $(TenantId) \
-kvi $(ClientId) \
-kvs $(ClientSecret) \
-fd sha256 \
-tr http://timestamp.digicert.com \
-td sha256 \
"$(Build.ArtifactStagingDirectory)\**\*.exe"
displayName: 'Sign executables' GitHub Actions
- name: Install AzureSignTool
run: dotnet tool install --global AzureSignTool
- name: Sign executables
run: |
AzureSignTool sign \
-kvu ${{ secrets.KEY_VAULT_URL }} \
-kvc ${{ secrets.CERT_NAME }} \
-kvt ${{ secrets.TENANT_ID }} \
-kvi ${{ secrets.CLIENT_ID }} \
-kvs ${{ secrets.CLIENT_SECRET }} \
-fd sha256 \
-tr http://timestamp.digicert.com \
-td sha256 \
"MyApp.exe" Lagra Key Vault-uppgifter som pipeline-variabler eller secrets. Använd Azure RBAC med en managed identity för nyckelfri autentisering.
Relaterade signeringsverktyg: SignTool / AzureSignTool | Jsign | Jämför alla →
Code Signing-certifikat för SignTool och AzureSignTool
OV Code Signing
DigiCert CodeSign OV
DigiCert OV Code Signing. Fungerar med signtool.exe och AzureSignTool.
GlobalSign CodeSign
GlobalSign OV Code Signing. Fungerar med signtool.exe och AzureSignTool.
EV Code Signing
Vanliga frågor om SignTool och AzureSignTool
Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.
C:\Program Files (x86)\Windows Kits\10\bin\10.x.x.x\x64\signtool.exeRedo att signera med SignTool?
Skapa ett gratis konto och utfärda ditt första certifikat på under 10 minuter.