我从GoDaddy带来了代码签名证书,并从中生成了一个.pfx文件。但是,当我使用此文件对Outlook vsto应用程序的clickonce清单进行代码签名时,在Visual Studio中会出现此错误
An error occurred while signing: Invalid provider type specified.
这里可能是什么问题? 谢谢。
答案 0 :(得分:1)
存储在br.readLine()
容器中的签名身份很可能是较旧的“加密服务提供者”(CSP)样式。您用来对软件包进行签名的环境看起来像必需的“密码学API:下一代”(CNG)提供程序类型。解决方案是将您现有的容器转换为使用CNG Storage Provider。这应该通过以下步骤完成...
使用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。