Как исправить ошибку «Нет доступных сертификатов подписи» в VBA?

Как исправить ошибку «Нет доступных сертификатов подписи» в VBA?

У нас есть скрипт VBA в Outlook, который генерирует всплывающее окно при отправке внешних писем. Судя по всему, срок действия подписи скрипта истек на выходных. Человека, подписавшего его, больше нет. Я вижу сертификат в CA на нашем DC, но нет возможности его обновить.

Я сгенерировал сертификат подписи кода и импортировал его на свой компьютер, но редактор VBA продолжает говорить No usable signing certificates are available. Я вижу сертификат в своем хранилище сертификатов. В шаблоне указано "Code Signing" вместо оригинального сертификата "%ORG% Code Signing", если это имеет значение.

Я действительно понятия не имею, что я делаю, и потратил часы на то, чтобы копаться в интернете и исследовать, чтобы зайти так далеко. Я в тупике и мне нужна помощь, чтобы снова подписать это. Если есть лучшая, более современная альтернатива, чтобы получить приглашение пользователя для внешних получателей, дайте мне знать.

решение1

Извините, я не большой эксперт в этом вопросе, но все же попробую вставить свои 5 копеек...

Во-первых, вы пробовали самоподписанный сертификат? Его легче отлаживать, он поможет вам провести локальное тестирование. https://social.technet.microsoft.com/Forums/lync/en-US/6b06b276-4266-4f29-ae22-2a3c86c4238f/certificate-for-digital-signature?forum=outlook

Далее, вы уверены, что вы импортировали закрытый ключ вместе с сертификатом? Скорее всего, он вам понадобится, насколько я понимаю механизм подписи (извините, если я вас введу в заблуждение; если вы верите в идею закрытого ключа, пожалуйста, проверьте, как его установить там:https://security.stackexchange.com/questions/25996/how-to-import-a-private-key-in-windows- вам понадобится PFX вместо CER, в противном случае закрытый ключ не импортируется).

И последнее, в какой контейнер в вашем хранилище сертификатов вы импортировали свой сертификат? Это также может повлиять на результат. https://answers.microsoft.com/en-us/msoffice/forum/all/vba-i-installed-digital-signing-certificate-but/231529b1-8099-4c7b-9bb6-2c36aeba00a4

Действия по получению сертификата для подписи

  1. На подписывающем компьютере откройтеManage User Certificates
  2. Щелкните правой кнопкой мыши Personal> All Tasks>Request New Certificate
  3. Выбрать Active Directory Enrollment Policy>Next
  4. Выберите Code Signingшаблон и нажмитеEnroll

Теперь редактор VBA должен увидеть сертификат и разрешить вам подписать скрипт.

При использовании подписанного скрипта в домене сертификат необходимо экспортировать, а затем добавить в групповую политику для импорта на каждую машину, которая будет использовать скрипт.

решение2

Мне удалось исправить это, импортировав сертификат через интерфейс «Свойства обозревателя» / «Содержимое» / «Сертификаты» в следующие три хранилища: «Личные», «Доверенные издатели», «Доверенные корневые центры сертификации».

Ранее я импортировал сертификат во все три расположения через «Управление сертификатами компьютеров» на уровне машины и «Управление сертификатами пользователей» на уровне пользователя, но хотя сертификат отображался во всех шести расположениях (три расположения — машины, три расположения — пользователи), Excel его не распознал.

Однако использование интерфейса «Свойства обозревателя» помогло.

Связанный контент