我使用 New-SelfSignedCertificate 函数在 Windows 10 中创建了一个自签名证书,如下所示:
New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -Subject "CN=VBA Code Signing" -KeyAlgorithm RSA -KeyLength 2048 -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -KeyExportPolicy Exportable -KeyUsage DigitalSignature -Type CodeSigningCert
我导出了包含私钥的证书并安装在另一台机器上。然而,该宏在第二台机器中仍然被阻止。宏设置为“禁用除数字签名宏之外的所有宏”
有人知道为什么会这样吗?
谢谢
Office 将只允许您信任创建该证书的计算机上的自签名证书。
您可以使用
SELFCERT.EXE
应用程序快速创建Office自签名证书。该应用程序位于此处:
C:\Program Files\Microsoft Office\root\Office16\SELFCERT.EXE
运行
SELFCERT.EXE
显示以下对话框,指出该证书仅在原始计算机上受信任,并且无论如何都会发出安全警告:
微软的文档中没有提到该证书在非原始计算机上不会被信任,这是一种耻辱。请参阅对 VBA 宏项目进行数字签名。
尽管 Office 的
selfcert.exe
工具发出警告,您仍可以通过将另一台计算机上的用户(或计算机)证书存储的 Trusted Root Certification Authorities
和 Trusted Publishers
文件夹导入到 Excel 信任另一台计算机上的自签名证书。目标计算机。
这里有一个更详细描述的链接:https://www.reddit.com/r/vba/comments/lwdzx1/complete_guide_to_self_signing_certificates_for/ .