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

Signera Office-makron med ett Code Signing-certifikat

Signera VBA-projekt i Excel (.xlsm), Word (.docm), PowerPoint (.pptm) och andra Office-filer. Den här guiden täcker både USB-token och Azure Key Vault-signering, inklusive det kritiska 32-bitarskravet som orsakar de flesta signeringsfel.

Varför signera Office-makron?

  • Betrodd körning utan säkerhetsvarningar när filen öppnas
  • Grupprincipstyrning: IT-avdelningar kan begränsa körning till enbart signerade makron
  • Manipulationsskydd: V3-signaturer åtgärdar CVE-2020-0760
  • Företagskrav: många organisationer kräver signerade makron i sina säkerhetspolicyer

Viktigt: 32-bitars signeringskrav

Office SIP (Subject Interface Package)-DLL:erna är 32-bitars. Du måste använda 32-bitarsversionen av signtool.exe eller 32-bitars .NET-värden för AzureSignTool. Att använda 64-bitarsverktyg är den vanligaste orsaken till att signering av Office-filer misslyckas.

Du behöver även OfficeSIPs-paketet från Microsoft (nedladdnings-ID 56617) som tillhandahåller msosipx.dll för moderna Office-format och msosip.dll för äldre format.

Konfiguration

1. Installera OfficeSIPs

Ladda ned OfficeSIPs-paketet från Microsoft Download Center (ID 56617) ↗. Packa upp paketet och lokalisera msosipx.dll (moderna format) och msosip.dll (äldre format).

2. Registrera med 32-bitars regsvr32

Använd 32-bitars regsvr32 för att registrera SIP-DLL:en:

C:\Windows\SysWOW64\regsvr32.exe msosipx.dll

3. Hitta 32-bitars signtool

32-bitars signtool finns i x86-katalogen i Windows SDK:

C:\Program Files (x86)\Windows Kits\10\bin\<version>\x86\signtool.exe

Signering med signtool (USB-token / SafeNet)

Använd 32-bitars signtool med flaggan /sha1 för att identifiera ditt certifikat via tumavtryck. Kör kommandot tre gånger för att skapa alla tre signaturtyper.

Kör 3 gånger (skapar Legacy-, Agile- och V3-signaturer):

signtool sign /sha1 YOUR_THUMBPRINT /fd sha256 ^
  /tr http://timestamp.digicert.com /td sha256 ^
  "C:\path\to\your-file.xlsm"

Inkludera alltid tidsstämpling (/tr) så att signaturerna förblir giltiga efter att certifikatet löper ut.

Signering med AzureSignTool (Azure Key Vault)

Använd x86 .NET-värden eller publicera AzureSignTool med flaggan -r win-x86. Kör kommandot tre gånger (precis som signtool).

Kör 3 gånger (skapar Legacy-, Agile- och V3-signaturer):

"C:\Program Files (x86)\dotnet\dotnet.exe" tool run AzureSignTool sign ^
  -kvu https://your-vault.vault.azure.net ^
  -kvc your-certificate-name ^
  -kvt YOUR_TENANT_ID ^
  -kvi YOUR_CLIENT_ID ^
  -kvs YOUR_CLIENT_SECRET ^
  -fd sha256 ^
  -tr http://timestamp.digicert.com ^
  -td sha256 ^
  "C:\path\to\your-file.xlsm"

Trippelsignering förklarad

Office VBA-projekt använder tre separata signaturformat. Varje körning av signtool skapar en ytterligare signatur.

Körning Signatur Lagring Kommentar
1 Legacy vbaProjectSignature.bin Ursprungligt format, alla Office-versioner
2 Agile vbaProjectSignatureAgile.bin Office 2010 och senare
3 V3 vbaProjectSignatureV3.bin Åtgärdar CVE-2020-0760. Microsoft 365 2102+, Office 2019/2016 med uppdateringar.

Filtyper som stöds

Moderna OOXML-format (använder msosipx.dll)

.xlsm.xlam.xlsb.xltm.docm.dotm.potm.ppam.ppsm.pptm

Äldre format (använder msosip.dll)

.xls.doc.ppt

Signeringsprocessen är densamma för alla filtyper.

Vanliga fel och lösningar

"File format cannot be signed because it is not recognized"

OfficeSIPs (msosipx.dll) är inte registrerade, eller så använder du 64-bitars signtool. Registrera med 32-bitars regsvr32 och använd x86-versionen av signtool.

Signaturen syns inte i Office

Du signerade bara en gång istället för tre. Office kräver alla tre signaturformat (Legacy, Agile, V3) för att signaturen ska visas i VBA-editorn.

AzureSignTool misslyckas med att signera Office-filer

Du använder inte x86 .NET-körmiljön. Använd C:\Program Files (x86)\dotnet\dotnet.exe för att köra AzureSignTool, eller publicera den som en fristående x86-binär med -r win-x86.

Code Signing-certifikat

OV Code Signing

DigiCert

DigiCert CodeSign OV

OV

DigiCert OV Code Signing. Brett plattformsstöd.

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

GlobalSign CodeSign

OV

GlobalSign OV Code Signing. Starkt varumärke.

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

EV Code Signing

Vanliga frågor om signering av Office-makron

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

Ja. Använd AzureSignTool med x86 .NET-värden (C:\Program Files (x86)\dotnet\dotnet.exe) eller publicera med flaggan -r win-x86. Signeringsprocessen är identisk med signering av exekverbara filer, men du måste köra den tre gånger.
Nej. Vilket Code Signing-certifikat som helst fungerar (OV eller EV). Extended Key Usage 1.3.6.1.5.5.7.3.3 täcker både programvarusignering och makrosignering.
Office VBA använder tre signaturformat: Legacy (för äldre Office-versioner), Agile (för Office 2010+) och V3 (introducerat för att åtgärda CVE-2020-0760, en sårbarhet som möjliggjorde manipulation). Alla tre behövs för full kompatibilitet och säkerhet.
Antingen är OfficeSIPs (msosipx.dll) inte registrerade, eller så använder du 64-bitarsversionen av signtool istället för 32-bitarsversionen. Office SIP-DLL:erna är 32-bitars, så du måste använda 32-bitars signtool från C:\Program Files (x86)\Windows Kits\10\bin\<version>\x86\.

Redo att signera dina Office-makron?

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