SSL-certifikat får vara giltiga i högst 199 dagar. Från 15 mars 2027 blir gränsen 99 dagar. Läs mer →

Code Signing med SignTool och AzureSignTool

signtool.exe är Microsofts officiella signeringsverktyg och ingår i Windows SDK. AzureSignTool är ett kostnadsfritt verktyg med öppen källkod som ger stöd för Azure Key Vault. Tillsammans täcker de de vanligaste sätten att kodsignera i Windows.

Båda verktygen signerar de vanliga filtyperna i Windows: .exe, .dll, .msi, .msix, .cab, .ps1, .appx och .sys. Välj signtool.exe för USB-token och det lokala certifikatlagret, eller AzureSignTool för signering i molnet med Azure Key Vault.

Vad är signtool.exe?

Microsofts officiella kommandoradsverktyg för Authenticode-signering. Det ingår i Windows SDK (Windows 10/11 SDK) och signerar de vanliga filtyperna i Windows: .exe, .dll, .msi, .msix, .cab, .ps1, .appx och .sys. Det fungerar direkt med USB-token (SafeNet eToken) via certifikatlagret i Windows.

signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a "MyApp.exe"

Vad är AzureSignTool?

AzureSignTool ↗ är ett .NET-verktyg med öppen källkod som signerar som signtool, men med nyckeln i Azure Key Vault. Det autentiserar med service principal, managed identity eller Azure CLI och ersätter signtool.exe helt när nyckeln ligger i Azure Key Vault. Installera det med:

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 eller AzureSignTool

signtool.exe AzureSignTool
Installation Ingår i Windows SDK .NET-verktyg (dotnet tool install)
Nyckellagring USB-token och lokalt certifikatlager HSM-nycklar i Azure Key Vault
Plattform Bara Windows Alla plattformar med .NET
Stöd för Azure Nej Ja, Azure Key Vault
CI/CD-pipelines Kräver fysisk token eller lokalt installerat certifikat Fungerar direkt i pipelines
Pris Kostnadsfritt (ingår i Windows SDK) Kostnadsfritt, öppen källkod

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 ett visst certifikat (SHA1-tumavtryck)

signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /sha1 ABCDEF1234567890 "MyApp.exe"

Kontrollera signaturen

signtool verify /pa /v "MyApp.exe"

Signera flera filer

signtool sign /fd sha256 /tr http://timestamp.digicert.com /td sha256 /a *.exe

Tidsstämpelservrar

Använd alltid /tr (RFC 3161), inte /t (Authenticodes äldre format). RFC 3161 är stabilare och rekommenderas av alla CA:er.

DigiCert:    http://timestamp.digicert.com
GlobalSign:  http://timestamp.globalsign.com/tsa/r6advanced1

Med en tidsstämpel fortsätter signaturen att gälla efter att certifikatet har gått ut. Utan tidsstämpel blir signaturen ogiltig när certifikatet går ut.

Exempel för CI/CD-pipelines

AzureSignTool fungerar i Azure DevOps, GitHub Actions och GitLab CI. Exempel för Azure DevOps och GitHub Actions:

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 uppgifterna till Key Vault som pipeline-variabler eller secrets. Med Azure RBAC och en managed identity autentiserar du utan lagrade hemligheter.

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 4 460 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 ingår i Windows SDK. Ladda ner Windows 10 eller 11 SDK från Microsoft. Vanlig installationssökväg: C:\Program Files (x86)\Windows Kits\10\bin\10.x.x.x\x64\signtool.exe
Nej. signtool.exe finns bara för Windows. För Authenticode-signering på Linux och macOS använder du Jsign, som är skrivet i Java och körs på alla plattformar. För signering av macOS-program använder du codesign.
/t använder Authenticodes äldre format för tidsstämplar. /tr använder RFC 3161, som är stabilare och rekommenderas. Använd alltid /tr tillsammans med /td sha256.
Ja. Med AzureSignTool och Azure Key Vault signerar du utan fysisk token. Autentisera med ett tjänsthuvudnamn (service principal) eller en hanterad identitet (managed identity). Se pipeline-exemplen ovan.
.exe, .dll, .msi, .msix, .cab, .ocx, .stl, .cat, .ps1, .psm1, .appx, .appxbundle, .sys med flera.

Redo att signera med SignTool?

Skapa ett gratis konto och beställ ditt första certifikat. Ett DV-certifikat utfärdas på under 2 minuter.