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:
3. Hitta 32-bitars signtool
32-bitars signtool finns i x86-katalogen i Windows SDK:
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)
Äldre format (använder msosip.dll)
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 CodeSign OV
DigiCert OV Code Signing. Brett plattformsstöd.
GlobalSign CodeSign
GlobalSign OV Code Signing. Starkt varumärke.
EV Code Signing
Vanliga frågor om signering av Office-makron
Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.
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.1.3.6.1.5.5.7.3.3 täcker både programvarusignering och makrosignering.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.