指定的提供程序类型无效对vsto outlook应用程序进行代码签名时出错

指定的提供程序类型无效对vsto outlook应用程序进行代码签名时出错,outlook,vsto,clickonce,code-signing,pfx,Outlook,Vsto,Clickonce,Code Signing,Pfx,我从GoDaddy带来了一个代码签名证书,并从中生成了一个.pfx文件。但是,当我使用此文件对outlook vsto应用程序的clickonce清单进行代码签名时,我在visual studio中遇到了此错误 An error occurred while signing: Invalid provider type specified. 这里有什么问题? 谢谢。存储在.pfx容器中的签名标识很可能是较旧的“加密服务提供商”(CSP)样式。您用于对包进行签名的环境看起来像是必需的“加密AP

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

An error occurred while signing: Invalid provider type specified. 
这里有什么问题?
谢谢。

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

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

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

    pvk.exe -in <pem file location>.pem -topvk -strong -out <pvk file location>.pvk
    
    pvk.exe-in.pem-topvk-strong-out.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>
    
    pvk2pfx.exe-pvk.pvk-pi-spc.cer-pfx.pfx-po
    
现在,您可以将新创建的pfx文件导入证书管理器。确保先从证书管理器中删除旧证书。证书就位后,您可以再次使用certutil验证证书是否正确

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


学分转到,在那里你可以找到关于这个问题的完整解释,以及示例和验证步骤

这是你试过的吗?您好@slavavivanov,我尝试在openssl
openssl pkcs12-in-mycert-cng.pfx-out-mycert.pem openssl pkcs12-export-in-mycert.pem-out-mycert cryptoapi.pfx中通过这个命令转换pfx,然后添加了新的pfx文件,但是当我构建解决方案时,我发现他的错误
无法导入以下密钥文件:mycert-cryptoapi.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_key_uuxxxxxx
我相信说明了一切,您只需按照以下步骤操作即可。事实上,它不仅仅是使用
openssl
pfx
容器进行简单的转换。我建议开始关注这篇文章,然后再试一次。最后我无法调试您的问题,对吗?致以最诚挚的问候,谢谢,@slavavivanov我成功了问题是我没有创建新的强密钥名文件。做得好,很高兴你解决了这个问题。