如何修復 VBA 中的「沒有可用的簽章憑證」?

如何修復 VBA 中的「沒有可用的簽章憑證」?

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

我已經生成了代碼簽名證書並將其導入到我的計算機中,但 VBA 編輯器一直顯示No usable signing certificates are available.我在我的證書商店中看到該證書。如果重要的話,範本會顯示「程式碼簽署」而不是原始憑證「%ORG% 程式碼簽署」。

我真的不知道自己在做什麼,花了幾個小時在網路上挖掘和研究才走到這一步。我陷入了困境,需要一些幫助才能再次簽名。如果有更好、更現代的替代方案來獲取外部收件者的使用者提示,請告訴我。

答案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 TasksRequest New Certificate
  3. 選擇Active Directory Enrollment Policy>Next
  4. 選擇一個Code Signing模板並點擊Enroll

VBA 編輯器現在應該可以看到證書並允許您簽署腳本。

如果跨網域使用簽署腳本,則需要匯出證書,然後將其新增至群組原則中,以便在將使用該腳本的每台電腦上匯入。

答案2

我透過 Internet 選項/內容/憑證介面將憑證匯入到以下三個儲存空間來解決此問題:個人、受信任的發布者、受信任的根憑證授權單位。

以前,我透過「管理電腦憑證」(對於電腦層級)和「管理使用者憑證」(對於使用者層級)將憑證匯入到所有三個位置,但是儘管憑證出現在所有六個位置(三個位置電腦) ,三個位置使用者),Excel 無法辨識它。

然而,透過 Internet 選項使用者介面卻成功了。

相關內容