I den här artikeln beskrivs hur du kan signera en makroprojekt digitalt i Windows med hjälp av en certifikat. Om du inte redan har ett digitalt certifikat måste du skaffa ett.
Tips: Om du vill använda eller testa makroprojekt på din egen dator kan du skapa ett eget självsigneringscertifikat med hjälp av verktyget Selfcert.exe. Du hittar mer information om det nedan.
Skaffa ett digitalt certifikat
Du kan skaffa ett digitalt certifikat från en kommersiell certifikatutfärdare (CA), från din interna säkerhetsadministratör eller från IT-avdelningen.
Mer information om certifikatutfärdare som erbjuder tjänster för Microsoft-produkter finns i listan över medlemmar i Microsoft-rotcertifikatprogrammet.
En digital signatur som du själv skapar har inte utfärdats av en formell betrodd certifikatutfärdare, och sådana makroprojekt kallas därför egensignerade projekt. I Microsoft Office behandlas bara ett egensignerat certifikat som betrott på en dator där certifikatet har lagts till i mappen Betrodda rotcertifikatutfärdare i arkivet Certifikat - aktuell användare. Det gör det bra för att testa eller använda på din egen dator eller ett mycket litet antal datorer som du hanterar, men inte särskilt bra för att distribuera makroprojekt till andra personer.
Skapa ett certifikat för egensignering
Visa certifikatet i arkivet för personliga certifikat
-
Öppna Microsoft Edge.
-
Ange edge://settings/privacy i adressfältet.
-
Rulla ned till avsnittet Säkerhet och välj Hantera certifikat.
Signera ett VBA-makroprojekt digitalt i Excel, PowerPoint, Publisher, Visio, Outlook eller Word
-
Öppna den fil som innehåller det makroprojekt som du vill signera.
-
Klicka på Visual Basic i gruppen Kod på fliken Utvecklare.
Obs!: Om fliken Utvecklare inte är tillgänglig gör du så här: Klicka på fliken Arkiv. Klicka på Alternativ. Klicka på Anpassa menyfliksområdet. Klicka på Utvecklare i listan Anpassa menyfliksområdet och klicka sedan på OK.
-
Klicka på Digital signatur på Verktyg-menyn i Visual Basic.
-
Dialogrutan Digital signatur visas.
-
Välj ett certifikat och klicka på OK.
Obs!: Om du inte har valt ett digitalt certifikat eller om du vill använda ett annat, klickar du på Välj. Välj ett certifikat och klicka på OK.
Lägga till en tidsstämpel i signaturen
När användarna kör ditt VBA-makro kontrollerar Office signaturen och certifikatet som det var signerat med. Om du lägger till en tidsstämpel i signaturen behandlas makrot fortfarande som signerat, även efter att certifikatet har upphört att gälla, så länge certifikatet inte har återkallats. Det kan minska störningarna för användarna.
Ett certifikat som bara har upphört att gälla kan fortfarande användas för att verifiera kod. Det går bara inte att använda det för att signera ny kod.
Om du vill lägga till en tidsstämpel måste du lägga till tre nycklar i registret.
Varning!: Om du redigerar registret felaktigt kan systemet skadas allvarligt. Innan du gör ändringar i registret rekommenderar vi att du säkerhetskopierar alla värdefulla data på datorn.
Tangent |
Typ |
Beskrivning |
---|---|---|
HKCU\Software\Microsoft\VBA\Security\TimeStampURL |
REG_SZ |
URL:en för den önskade tidsstämpelservern. (Obligatoriskt) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount |
REG_DWORD |
Antalet gånger Visual Basic Editor försöker ansluta till tidsstämpelservern innan den misslyckas. (Valfritt – Om du inte anger det försöker Visual Basic Editor bara kontakta servern en gång) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay |
REG_DWORD |
Antalet sekunder (i millisekunder) som Visual Basic Editor väntar mellan att försöka ansluta till tidsstämpelservern igen. (Valfritt – Om du inte anger detta blir det ingen fördröjning mellan eventuella försök) |
När du har lagt till en fungerande TimeStampURL-post lägger Visual Basic Editor automatiskt till en tidsstämpel när du signerar ett makro digitalt.
Anmärkningar
-
Vi rekommenderar att du signerar makron först när lösningen har testats och är klar för distribution: när kod i ett signerat makro ändras på något sätt tas dess digitala signatur bort. Om datorn innehåller ett giltigt digitalt certifikat som tidigare har använts för att signera projektet så signeras makroprojektet om automatiskt när du sparar det.
-
Ett sätt att förhindra att användare oavsiktligt ändrar ditt makroprojekt och gör signaturen ogiltig är att låsa makroprojektet innan du tillämpar signaturen. Din digitala signatur säkerställer att projektet inte har manipulerats sedan du signerade det, men det bevisar inte att du skrev projektet. Även om du har låst makroprojektet kanske en annan användare fortfarande kan ersätta din signatur med en annan signatur. Företagsadministratörer kan också signera om mallar och tillägg för att säkerställa att endast godkänt innehåll körs på företagets datorer.
-
Om du skapar ett tillägg som lägger till en kod i makroprojektet är det koden som avgör om projektet är digitalt signerat och informerar användarna om följderna av att ändra ett signerat projekt innan de fortsätter.
-
Användare som använder kommersiella certifikat kan stöta på block på grund av begränsningen av hash-algoritmer som stöds vid signering. Du kan lägga till ett DWORD-registernyckelvärde V1HashEnhanced om du vill välja en annan hashalgoritm under HKCU\SOFTWARE\Microsoft\VBA\Security med värdealgoritmregler (1 till SHA1, 2 till SHA256, 3 till SHA384, 4 till SHA512 och andra till MD5). Den här inställningen är tillgänglig i de senaste versionerna av CC-kanalen.
Läs mer
Aktivera eller inaktivera makron i Microsoft 365-filer
Obs!: Den här artikeln skapades av en person med hjälp av artificiell intelligens (AI).