Тази статия описва как можете да подпишете цифрово проект на макрос в Windows с помощта на сертификат. Ако все още нямате цифров сертификат, ще трябва да получите такъв.
Съвет: За да използвате или тествате проекти с макроси на вашия компютър, можете да създадете ваш собствен сертификат за самоподписан с помощта на инструмента за Selfcert.exe. Ще намерите повече подробности за това по-долу.
Получаване на цифров сертификат
Можете да получите цифров сертификат от търговски сертифициращ орган (CA), от вашия вътрешен администратор по защитата или ИТ специалист.
За да научите повече за сертифициращите органи, които предлагат услуги за продукти на Microsoft, вж. списъка на членовете на програмата за главни сертификати на Microsoft.
Тъй като цифровият сертификат, създаден от вас, не е издаден от официален надежден орган за сертифициране, проектите с макроси, подписани с такъв сертификат, се наричат самоподписани проекти. Microsoft Office се доверява на самоподписан сертификат само на компютър, на който този сертификат е добавен към Надеждни главни сертифициращи органи в хранилището "Сертификати – текущ потребител". Това е добре за тестване или използване на вашата машина или на много малък брой машини, които управлявате, но не много добре за разпространение на проекти с макроси до други хора.
Създаване на самоподписан сертификат
Преглед на сертификата в хранилището на лични сертификати
-
Отворете Microsoft Edge.
-
Въведете edge://settings/privacy в адресната лента.
-
Превъртете надолу до секцията Защита и изберете Управление на сертификати.
Подписване с цифров подпис на VBA проект с макроси в Excel, PowerPoint, Publisher, Visio, Outlook или Word
-
Отворете файла, съдържащ проекта с макроси, който желаете да подпишете.
-
В раздела Разработчик, в групата Код щракнете върху Visual Basic.
Забележка: Ако разделът "Разработчик" не е достъпен: щракнете върху раздела Файл. Щракнете върху Опции. Щракнете върху Персонализиране на лентата. В списъка Персонализиране на лентата изберете Разработчик и след това щракнете върху OK.
-
Във Visual Basic, в менюто Инструменти щракнете върху Цифров подпис.
-
Появява се диалоговият прозорец Цифров подпис.
-
Изберете сертификат и щракнете върху OK.
Забележка: Ако не сте избрали цифров сертификат или желаете да използвате друг, щракнете върху Избор. Изберете сертификат и щракнете върху OK.
Добавяне на клеймо с дата и час към вашия подпис
Когато хората изпълняват вашия vba макрос, Office ще провери подписа и сертификата, с който е подписан. Добавянето на клеймо с дата и час към вашия подпис означава, че макросът ви все още ще се третира като подписан, дори след като срокът на вашия сертификат е изтекъл, при условие че сертификатът не бъде анулиран. Това може да намали прекъсването на работата на потребителите.
Сертификат, който е с изтекъл срок, все още може да се използва за проверка на кода – просто не може да се използва за подписване на нов код.
За да добавите клеймо с дата и час, трябва да добавите три ключа към системния регистър.
Внимание: Неправилното редактиране на системния регистър може сериозно да повреди вашата система. Преди да правите промени в системния регистър, архивирайте всички ценни данни на компютъра.
Клавиш |
Тип |
Описание |
---|---|---|
HKCU\Software\Microsoft\VBA\Security\TimeStampURL |
REG_SZ |
URL адресът на предпочитания от вас сървър за клеймо с дата и час. (Задължително) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount |
REG_DWORD |
Колко пъти редакторът на Visual Basic ще се опита да се свърже със сървъра за клеймо с дата и час, преди да е неуспешен. (Незадължително – Ако не зададете това, редакторът на Visual Basic ще се опита да се свърже със сървъра само веднъж) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay |
REG_DWORD |
Броят секунди (в милисекунди), които редакторът на Visual Basic ще изчака, докато се опита да се свърже със сървъра за клеймо с дата и час. (Незадължително – Ако не зададете това, няма да има никакво забавяне между повторни опити) |
След като сте добавили работещ timeStampURL запис, редакторът на Visual Basic автоматично ще добави клеймо с дата и час всеки път, когато подписвате макрос с цифров подпис.
Допълнителни бележки
-
Препоръчва се да подписвате макросите само след като вашето решение е изпробвано и готово за разпространение: когато кодът в подписан проект с макроси бъде променен по някакъв начин, неговият цифров подпис се премахва. Но ако на компютъра си имате валиден цифров сертификат, който преди това е бил използван за подписване на проекта, проектът с макроси ще бъде автоматично преподписан, когато го запишете.
-
Един от начините да попречите на потребителите случайно да променят вашия проект с макроси и анулирането на подписа ви е да заключите проекта с макроси, преди да приложите подписа. Цифровият ви подпис гарантира, че проектът не е променян, след като сте го подписали, но не доказва, че сте написали проекта. Дори ако сте заключили вашия проект с макроси, друг потребител все още може да замести вашия подпис с друг подпис. Корпоративните администратори могат също да подпишат отново шаблоните и добавките, за да гарантират, че само одобрено съдържание се изпълнява на фирмените компютри.
-
Ако създавате добавки, които добавят програмен код към вашия проект с макроси, вашата програма трябва да може да определя, дали проектът е цифрово подписан, и да уведомява потребителите за последствията от промяната на подписания проект, преди да продължат.
-
Потребителите, които използват търговски сертификати, може да срещнат блокове поради ограничението на поддържаните алгоритми за хеширане при подписването. Можете да добавите DWORD стойност на ключ от системния регистър V1HashEnhanced, за да изберете друг алгоритъм за хеширане, под HKCU\SOFTWARE\Microsoft\VBA\Security с правила за алгоритъма на стойността (от 1 до SHA1, от 2 до SHA256, от 3 до SHA384, от 4 до SHA512 и други към MD5). Тази настройка е налична в най-новите версии на канала "Як".
Научете повече
Разрешаване или забраняване на макроси във файлове на Microsoft 365
Забележка: Тази статия е създадена от човек с помощта на изкуствен интелект (ИИ).