我们在 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
获取签名证书的步骤
Manage User Certificates
Personal
>All Tasks
>Request New Certificate
Active Directory Enrollment Policy
>Next
Code Signing
模板并单击Enroll
VBA 编辑器现在应该可以看到证书并允许您签署脚本。
如果跨域使用签名脚本,则需要导出证书,然后将其添加到组策略中,以便在将使用该脚本的每台计算机上导入。