在对vsto Outlook应用程序签名的代码中指定了无效的提供程序类型错误

时间:2018-08-08 05:55:24

标签: outlook vsto clickonce code-signing pfx

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

An error occurred while signing: Invalid provider type specified. 

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

1 个答案:

答案 0 :(得分:1)

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

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

    .pem
  • 转换为PVK

    openssl.exe pkcs12 -in <original pfx file>.pfx -nocerts -out <pem file location>.pem
    
  • 合并公钥和私钥

    pvk.exe -in <pem file location>.pem -topvk -strong -out <pvk file location>.pvk
    

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

如果现在将提供程序显示为“ Microsoft Strong Cryptographic Provider”,则说明操作已成功。

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