会计集成中的“PKCS12 (PFX) 未提供密码已超过允许的最大迭代次数”错误
本文为 Microsoft Dynamics 365 Commerce 中的会计集成过程中发生的错误提供了解决方案。
症状
在 会计注册 过程中,尝试提交会计文档时,会收到以下错误消息:
没有提供密码的 PKCS12 (PFX) 已超过允许的最大迭代次数。 有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=2233907 (在新窗口中打开或选项卡) 。
解决方案
先决条件
在探索此问题之前,应了解方案中支持的证书类型。
- 如果 POS 在脱机模式下运行,则仅支持本地证书。
- 对于商业规模单元 (CSU) (云) ,仅支持来自 Azure 密钥保管库 的证书。
- 对于自承载 CSU,支持来自 Azure 密钥保管库 和本地存储的证书。
导出不使用密码的 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)
更多信息
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈