В этой статье описывается, как цифровая подпись макрос в Windows с помощью сертификат. Если у вас еще нет цифрового сертификата, необходимо получить его.
Совет: Чтобы использовать или тестировать проекты макросов на своем компьютере, можно создать собственный самозаверяющий сертификат с помощью средства Selfcert.exe. Дополнительные сведения об этом см. ниже.
Получение цифрового сертификата
Вы можете получить цифровой сертификат от коммерческого центра сертификации (ЦС), от внутреннего администратора безопасности или ит-специалиста.
Дополнительные сведения о центрах сертификации, предлагающих услуги для продуктов Майкрософт, см. в списке участников программы корневых сертификатов Майкрософт.
Поскольку самостоятельно созданный цифровой сертификат не был выдан официальным доверенным центром сертификации, макросы, подписанные с использованием такого сертификата, называют самозаверяющими макросами. В Microsoft Office самозаверяющие сертификаты считаются надежными только на том компьютере, на котором они добавлены в папку доверенных корневых центров сертификации в хранилище "Сертификаты — текущий пользователь". Это делает его хорошим для тестирования или использования на собственном компьютере или очень небольшом количестве компьютеров, которыми вы управляете, но не очень хорошо для распространения проектов макросов среди других людей.
Создание самозаверяющего сертификата
Просмотр сертификата в хранилище личных сертификатов
-
Откройте Microsoft Edge.
-
Введите edge://settings/privacy в адресной строке.
-
Прокрутите вниз до раздела Безопасность и выберите Управление сертификатами.
Цифровая подпись проекта макроса VBA в Excel, PowerPoint, Publisher, Visio, Outlook или Word
-
Откройте файл, содержащий макрос, который необходимо подписать.
-
На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
Примечание: Если вкладка Разработчик недоступна, перейдите на вкладку Файл . Нажмите кнопку Параметры. Выберите пункт Настроить ленту. В списке Настройка ленты щелкните Разработчик, а затем нажмите кнопку ОК.
-
В Visual Basic в меню Сервис выберите пункт Цифровая подпись.
-
Откроется диалоговое окно Цифровая подпись.
-
Выберите сертификат и нажмите кнопку ОК.
Примечание: Если вы не выбрали цифровой сертификат или хотите использовать другой сертификат, нажмите кнопку Выбрать. Выберите сертификат и нажмите кнопку ОК.
Добавление метки времени в подпись
Когда пользователи запускают макрос 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). Этот параметр доступен в последних версиях канала CC.
Подробнее
Включение или отключение макросов в файлах Microsoft 365
Примечание: Эта статья была создана человеком с использованием искусственного интеллекта (ИИ).