SSL-certifikaternes maksimale levetid reduceres til 200 dage fra marts 2026. Læs mere →

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

DigiCert CodeSign OV

OV

DigiCert OV Code Signing. Virker med signtool.exe og AzureSignTool.

fra 3.550 DKK /år Se detaljer →
GlobalSign

GlobalSign CodeSign

OV

GlobalSign OV Code Signing. Virker med signtool.exe og AzureSignTool.

fra 2.800 DKK /år Se detaljer →

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.

Ja. signtool.exe er en del af Windows SDK. Download Windows 10 eller 11 SDK fra Microsoft. Typisk installationssti: C:\Program Files (x86)\Windows Kits\10\bin\10.x.x.x\x64\signtool.exe
Nej. signtool.exe er kun til Windows. Brug Jsign (Java-baseret, cross-platform) til Linux og macOS Authenticode-signering. Til native macOS-signering: brug codesign.
/t bruger det ældre Authenticode timestamp-format. /tr bruger RFC 3161 som er mere robust og anbefalet. Brug altid /tr med /td sha256.
Ja. Med AzureSignTool og Azure Key Vault kan du signere uden fysisk token. Autentificer med service principal eller managed identity. Se pipeline-eksemplerne ovenfor.
.exe, .dll, .msi, .msix, .cab, .ocx, .stl, .cat, .ps1, .psm1, .appx, .appxbundle, .sys og flere.

Klar til at signere med SignTool?

Opret en gratis konto og udsted dit første certifikat på under 10 minutter.