【问题标题】:Invalid provider type specified error in code signing the vsto outlook application在对 vsto Outlook 应用程序签名的代码中指定了无效的提供程序类型错误
【发布时间】:2018-08-08 05:55:24
【问题描述】:

我带来了来自 GoDaddy 的代码签名证书,并从中生成了一个 .pfx 文件。但是,当我使用此文件对 Outlook vsto 应用程序的 clickonce 清单进行代码签名时,我在 Visual Studio 中收到此错误

An error occurred while signing: Invalid provider type specified. 

这可能是什么问题? 谢谢。

【问题讨论】:

  • 这是你尝试过的吗? Signing clickonce manifests gives error
  • 嗨 @SlavaIvanov 好吧,我尝试在 open ssl openssl pkcs12 -in mycert-cng.pfx -out mycert.pem openssl pkcs12 -export -in mycert.pem -out mycert-cryptoapi.pfx 中通过此命令转换 pfx,然后添加新的 pfx 文件,但是当我构建解决方案时,我得到了他的错误 Cannot import the following key file: mycert-cryptoapi.pfx. The key file may be password protected. To correct this, try to import the certificate again or manually install the certificate to the Strong Name CSP with the following key container name: VS_KEY_xxxxxx
  • 我相信article 解释了一切,您只需要按照步骤操作即可。事实上,这不仅仅是将pfx 容器与openssl 进行简单转换。我建议开始关注这篇文章,然后再试一次。最后我无法调试你的问题,对吧?最好的问候,
  • 谢谢,@SlavaIvanov 我搞定了,问题是我没有制作新的强键名文件。
  • 干得好,很高兴你完成了。

标签: outlook vsto clickonce code-signing pfx


【解决方案1】:

.pfx 容器中存储的签名身份很可能是较旧的“加密服务提供者”(CSP) 样式。您用于对包进行签名的环境看起来像必需的“加密 API:下一代”(CNG)提供程序类型。解决方案是将现有容器转换为使用 CNG 存储提供程序。这应该通过以下步骤来完成...

  • 将 PFX 导入您的个人商店
  • 通过导出向导从存储中导出公钥
  • 使用 OpenSSL 将私钥导出为.pem 格式

    openssl.exe pkcs12 -in <original pfx file>.pfx -nocerts -out <pem file location>.pem
    
  • 转换为 PVK

    pvk.exe -in <pem file location>.pem -topvk -strong -out <pvk file location>.pvk
    
  • 合并公钥和私钥

    pvk2pfx.exe -pvk <pvk file location>.pvk -pi <pvk password> -spc <pvk file location>.cer -pfx <new pfx file location>.pfx -po <pfx password>
    

现在您可以将新创建​​的 pfx 文件导入证书管理器。确保首先从证书管理器中删除旧证书。证书到位后,您可以再次使用 certutil 来验证证书现在是否正确。

如果它现在将提供程序显示为“Microsoft 强加密提供程序”,则说明操作已成功。

致谢Remy's Blog,您可以在其中找到有关该问题的完整说明以及示例和验证步骤...Converting Certificate to use CSP Storage Provider in stead of CNG Storage Provider

【讨论】:

    猜你喜欢
    • 2019-02-03
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多