Code Signing med SignTool og AzureSignTool
signtool.exe er Microsofts officielle signeringsværktøj, inkluderet i Windows SDK. AzureSignTool er en gratis, open source-udvidelse der tilføjer Azure Key Vault-understøttelse. Tilsammen dækker de de mest almindelige Windows code signing-workflows.
Begge værktøjer signerer alle standard Windows-filtyper: .exe, .dll, .msi, .msix, .cab, .ps1, .appx og .sys. Vælg signtool.exe til USB-token og lokal certificate store, eller AzureSignTool til cloud-baseret signering med Azure Key Vault.
Hvad er signtool.exe?
Microsofts officielle kommandolinjeværktøj til Authenticode-signering. Inkluderet i Windows SDK (Windows 10/11 SDK). Signerer alle standard Windows-filtyper: .exe, .dll, .msi, .msix, .cab, .ps1, .appx, .sys. Virker direkte med USB-tokens (SafeNet eToken) via Windows certificate store.
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a "MyApp.exe"
Hvad er AzureSignTool?
AzureSignTool ↗ er et open source .NET-værktøj der udvider signtool-konceptet til Azure Key Vault. Autentificerer via service principal, managed identity eller Azure CLI. Erstatter signtool.exe fuldstændigt for Azure Key Vault-baseret signering. Installeres via:
dotnet tool install --global AzureSignTool
Eksempel 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 | Inkluderet i Windows SDK | .NET tool (dotnet tool install) |
| Nøgleopbevaring | USB-tokens + lokal certificate store | Azure Key Vault HSM-nøgler |
| Platform | Kun Windows | Cross-platform (.NET) |
| Azure-understøttelse | Nej | Ja, Azure Key Vault |
| CI/CD-pipelines | Kræver fysisk token eller lokal cert | Understøtter pipelines direkte |
| Pris | Gratis (del af Windows SDK) | Gratis og open source |
Almindelige signtool-kommandoer
Signer med USB-token (auto-vælg certifikat)
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a "MyApp.exe"
Signer med specifikt certifikat (SHA1-thumbprint)
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /sha1 ABCDEF1234567890 "MyApp.exe"
Verificer signatur
signtool verify /pa /v "MyApp.exe"
Signer flere filer
signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a *.exe
Timestamp-servere
Brug altid /tr (RFC 3161), ikke /t (ældre Authenticode-format). RFC 3161 er mere robust og anbefalet af alle CA'er.
DigiCert: http://timestamp.digicert.com GlobalSign: http://timestamp.globalsign.com/tsa/r6advanced1
Timestamping sikrer, at signaturer forbliver gyldige efter certifikatets udløb. Uden timestamp bliver signaturen ugyldig, når certifikatet udløber.
CI/CD pipeline-eksempler
AzureSignTool integreres i Azure DevOps, GitHub Actions og GitLab CI. Her er eksempler for de mest almindelige 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" Gem Key Vault-credentials som pipeline-variabler eller secrets. Brug Azure RBAC med en managed identity for nøglefri autentificering.
Relaterede signeringsværktøjer: SignTool / AzureSignTool | Jsign | Sammenlign alle →
Code Signing-certifikater til SignTool og AzureSignTool
OV Code Signing
DigiCert CodeSign OV
DigiCert OV Code Signing. Virker med signtool.exe og AzureSignTool.
GlobalSign CodeSign
GlobalSign OV Code Signing. Virker med signtool.exe og AzureSignTool.
EV Code Signing
Ofte stillede spørgsmål om SignTool og AzureSignTool
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
C:\Program Files (x86)\Windows Kits\10\bin\10.x.x.x\x64\signtool.exeKlar til at signere med SignTool?
Opret en gratis konto og udsted dit første certifikat på under 10 minutter.