会计集成中的“PKCS12 (PFX) 未提供密码已超过允许的最大迭代次数”错误

本文为 Microsoft Dynamics 365 Commerce 中的会计集成过程中发生的错误提供了解决方案。

症状

会计注册 过程中,尝试提交会计文档时,会收到以下错误消息:

没有提供密码的 PKCS12 (PFX) 已超过允许的最大迭代次数。 有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=2233907 (在新窗口中打开或选项卡) 。

解决方案

先决条件

在探索此问题之前,应了解方案中支持的证书类型。

导出不使用密码的 PFX 证书

如果使用来自 Azure 密钥保管库 的证书进行数字签名,则上传到 Azure 密钥保管库的证书应包含私钥,并且没有密码。

如果使用证书导出向导导出证书,则应选择个人信息 交换 (PFX) 证书 格式,系统将提示输入密码。 但是,Microsoft Dynamics 365 Commerce中的数字签名不支持带密码的证书。 运行以下脚本以从 PFX 证书中删除密码:

$pfxFilePath = '<Localpath of the pfx certificate>'
$pwd = '<Password of the pfx certificate>'
$collection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$collection.Import($pfxFilePath, $pwd, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
$pkcs12ContentType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12
$certBytes = $collection.Export($pkcs12ContentType)
[System.IO.File]::WriteAllBytes($pfxFilePath, $certBytes)

更多信息