SSL-certifikatens maximala livslängd reduceras till 200 dagar från mars 2026. Läs mer →

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

DigiCert CodeSign OV

OV

DigiCert OV Code Signing. Fungerar med signtool.exe och AzureSignTool.

från 5 300 SEK /år Se detaljer →
GlobalSign

GlobalSign CodeSign

OV

GlobalSign OV Code Signing. Fungerar med signtool.exe och AzureSignTool.

från 4 190 SEK /år Se detaljer →

EV Code Signing

Vanliga frågor om SignTool och AzureSignTool

Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.

Ja. signtool.exe är en del av Windows SDK. Ladda ner Windows 10 eller 11 SDK från Microsoft. Typisk installationssökväg: C:\Program Files (x86)\Windows Kits\10\bin\10.x.x.x\x64\signtool.exe
Nej. signtool.exe är bara för Windows. Använd Jsign (Java-baserat, cross-platform) för Linux och macOS Authenticode-signering. För nativ macOS-signering: använd codesign.
/t använder det äldre Authenticode timestamp-formatet. /tr använder RFC 3161 som är mer robust och rekommenderat. Använd alltid /tr med /td sha256.
Ja. Med AzureSignTool och Azure Key Vault kan du signera utan fysisk token. Autentisera med service principal eller managed identity. Se pipeline-exemplen ovan.
.exe, .dll, .msi, .msix, .cab, .ocx, .stl, .cat, .ps1, .psm1, .appx, .appxbundle, .sys och fler.

Redo att signera med SignTool?

Skapa ett gratis konto och utfärda ditt första certifikat på under 10 minuter.