W tym artykule opisano, jak cyfrowo podpisać projekt makra w systemie Windows przy użyciu certyfikat. Jeśli nie masz jeszcze certyfikatu cyfrowego, musisz go uzyskać.
Porada: Aby używać lub testować projekty makr na własnym komputerze, możesz utworzyć własny certyfikat do samodzielnego podpisywania przy użyciu narzędzia Selfcert.exe. Więcej informacji na ten temat znajdziesz poniżej.
Uzyskiwanie certyfikatu cyfrowego
Certyfikat cyfrowy możesz uzyskać od komercyjnego urzędu certyfikacji, od administratora zabezpieczeń wewnętrznych lub specjalisty ds. technologii informatycznych.
Aby dowiedzieć się więcej o urzędach certyfikacji oferujących usługi dla produktów firmy Microsoft, zobacz listę członków programu certyfikatów głównych firmy Microsoft.
Ponieważ certyfikat cyfrowy utworzony samodzielnie przez użytkownika nie jest wydany przez zaufany urząd certyfikacji, podpisane w ten sposób projekty makr są określane jako projekty z podpisem własnym. Pakiet Microsoft Office uznaje certyfikat z podpisem własnym za zaufany tylko na tych komputerach, na których taki certyfikat dodano do folderu Zaufane główne urzędy certyfikacji w magazynie Certyfikaty — bieżący użytkownik. To ułatwia testowanie lub używanie na własnym komputerze lub bardzo małej liczbie komputerów, które zarządzasz, ale niezbyt dobrze nadaje się do rozpowszechniania projektów makr wśród innych osób.
Tworzenie certyfikatu z podpisem własnym
Wyświetlanie certyfikatu w magazynie certyfikatów osobistych
-
Otwórz program Microsoft Edge.
-
Wprowadź edge://settings/privacy na pasku adresu.
-
Przewiń w dół do sekcji Zabezpieczenia i wybierz pozycję Zarządzaj certyfikatami.
Cyfrowe podpisywanie projektu makra języka VBA w programach Excel, PowerPoint, Publisher, Visio, Outlook lub Word
-
Otwórz plik zawierający projekt makra, który chcesz podpisać.
-
Na karcie Deweloper w grupie Kod kliknij przycisk Visual Basic.
Uwaga: Jeśli karta Deweloper nie jest dostępna: kliknij kartę Plik . Kliknij pozycję Opcje. Kliknij pozycję Dostosowywanie Wstążki. Na liście Dostosuj Wstążkę kliknij pozycję Deweloper, a następnie kliknij przycisk OK.
-
W oknie Visual Basic w menu Tools (Narzędzia) kliknij polecenie Digital Signature (Podpis cyfrowy).
-
Zostanie wyświetlone okno dialogowe Podpis cyfrowy.
-
Wybierz certyfikat i kliknij przycisk OK.
Uwaga: Jeśli certyfikat cyfrowy nie został jeszcze wybrany lub chcesz użyć innego certyfikatu, kliknij pozycję Wybierz. Wybierz certyfikat i kliknij przycisk OK.
Dodawanie sygnatury czasowej do podpisu
Po uruchomieniu makra języka VBA pakiet Office sprawdzi podpis i certyfikat, na który został podpisany. Dodanie sygnatury czasowej do podpisu oznacza, że makro będzie nadal traktowane jako podpisane, nawet po wygaśnięciu certyfikatu, o ile certyfikat nie zostanie odwołany. Może to zmniejszyć zakłócenia w działaniu użytkowników.
Certyfikat, który po prostu wygasł, może być nadal używany do sprawdzania poprawności kodu, po prostu nie może być używany do podpisywania nowego kodu.
Aby dodać sygnaturę czasową, musisz dodać trzy klucze do rejestru.
Przestroga: Nieprawidłowe edytowanie rejestru może spowodować poważnie uszkodzenie systemu. Przed wprowadzeniem zmian w rejestrze zalecamy utworzenie kopii zapasowej wszelkich ważnych danych przechowywanych na komputerze.
Klawisz |
Typ |
Opis |
---|---|---|
HKCU\Software\Microsoft\VBA\Security\TimeStampURL |
REG_SZ |
Adres URL preferowanego serwera sygnatur czasowych. (Wymagane) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount |
REG_DWORD |
Liczba prób nawiązania połączenia przez Edytor Visual Basic z serwerem sygnatur czasowych przed niepowodzeniem. (Opcjonalnie — jeśli tego nie zrobisz, Edytor Visual Basic spróbuje skontaktować się z serwerem tylko raz) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay |
REG_DWORD |
Liczba sekund (w milisekundach) edytora Visual Basic będzie czekać między ponowną próbą nawiązania połączenia z serwerem sygnatur czasowych. (Opcjonalnie — jeśli nie ustawisz tej opcji, nie będzie żadnych opóźnień między jakimikolwiek próbami) |
Po dodaniu działającego wpisu TimeStampURL Edytor Visual Basic automatycznie doda sygnaturę czasową za każdym razem, gdy podpiszesz makro cyfrowo.
Uwagi dodatkowe
-
Zaleca się podpisywanie makr dopiero po przetestowaniu rozwiązania i przygotowaniu go do rozpowszechniania: gdy kod w podpisanym projekcie makra zostanie w jakikolwiek sposób zmieniony, jego podpis cyfrowy zostanie usunięty. Jeśli jednak na komputerze istnieje prawidłowy certyfikat cyfrowy, który został poprzednio użyty do podpisania projektu, projekt makra jest automatycznie podpisywany ponownie podczas zapisywania.
-
Jednym ze sposobów zapobiegania przypadkowej zmianie projektu makra i unieważnieniu podpisu przez użytkowników jest zablokowanie projektu makra przed zastosowaniem podpisu. Podpis cyfrowy gwarantuje, że projekt nie został zmodyfikowany od czasu podpisania, ale nie dowodzi, że projekt został napisany. Nawet jeśli projekt makra został zablokowany, inny użytkownik nadal może zamienić podpis na inny podpis. Administratorzy korporacyjni mogą również ponownie podpisywać szablony i dodatki, aby upewnić się, że na komputerach firmowych jest uruchamiana tylko zatwierdzona zawartość.
-
W przypadku tworzenia dodatku, który dodaje kod do projektu makra, nowy kod powinien stwierdzać, czy projekt jest podpisany cyfrowo, i powiadamiać użytkownika o konsekwencjach modyfikowania podpisanego projektu, zanim pozwoli mu przejść dalej.
-
Użytkownicy korzystający z certyfikatów komercyjnych mogą napotkać bloki ze względu na ograniczenie obsługiwanych algorytmów skrótu podczas podpisywania. Możesz dodać klucz rejestru DWORD V1HashEnhanced, aby wybrać inny algorytm skrótu, w obszarze HKCU\SOFTWARE\Microsoft\VBA\Security z regułami algorytmu wartości (od 1 do SHA1, od 2 do SHA256, od 3 do SHA384, 4 do SHA512 i innych do MD5). To ustawienie jest dostępne w najnowszych wersjach kanału CC.
Dowiedz się więcej
Włączanie lub wyłączanie makr w plikach platformy Microsoft 365
Uwaga: Ten artykuł został utworzony przez osobę korzystającą z pomocy sztucznej inteligencji.