Certificate-Authority

如何在 VBA 中修復“沒有可用的簽名證書可用”?

  • September 27, 2021

我們在 Outlook 中有一個 VBA 腳本,它在發送外部電子郵件時會生成一個彈出視窗。顯然腳本的簽名在周末過期。簽字的人已經不在了。我在我們 DC 的 CA 中看到證書,但沒有續訂選項。

我已經生成了一個程式碼簽名證書並將其導入我的電腦,但 VBA 編輯器一直說No usable signing certificates are available. 我在我的證書儲存中看到了證書。如果重要的話,模板會顯示“程式碼簽名”而不是原始證書“%ORG% 程式碼簽名”。

我真的不知道自己在做什麼,並且花了幾個小時在網上探勘和研究才能走到這一步。我處於死胡同,可以使用一些幫助來重新簽名。如果有更好的更現代的替代方法來獲取外部收件人的使用者提示,請告訴我。

抱歉,我不是這裡的大專家,但仍會嘗試添加我的 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 編輯器現在應該可以看到證書並允許您簽署腳本。

引用自:https://serverfault.com/questions/1078351