SSL-certifikat får vara giltiga i högst 199 dagar. Från 2027-02-24 blir gränsen 99 dagar. 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. Guiden visar signering med både USB-token och Azure Key Vault, och går igenom 32-bitarskravet som ligger bakom 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: organisationer kan kräva signerade makron i sina säkerhetspolicyer

Viktigt: signeringen kräver 32-bitarsverktyg

DLL-filerna för Office SIP (Subject Interface Package) ä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 innehå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 leta upp 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"

Använd alltid tidsstämpling (/tr), så att signaturerna fortsätter att gälla efter att certifikatet har gått 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 med 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"

Så fungerar trippelsigneringen

Office VBA-projekt använder tre separata signaturformat. Varje körning av signtool lägger till en 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

Signeringen går till på samma sätt 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 i stä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 4 460 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. Signeringen går till på samma sätt som för körbara filer, men du kör den tre gånger.
Nej. Alla Code Signing-certifikat fungerar, både OV och 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 gjorde manipulation möjlig). 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 i stä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 beställ ditt första certifikat. Ett DV-certifikat utfärdas på under 2 minuter.