会計統合での "パスワードが指定されていない PKCS12 (PFX) が許容されるイテレーションの最大数を超えました" というエラー
この記事では、Microsoft Dynamics 365 Commerce の会計統合プロセスで発生するエラーの解決策について説明します。
現象
fiscal 登録プロセスでは、会計ドキュメントを送信しようとすると、次のエラー メッセージが表示されます。
パスワードが指定されていない PKCS12 (PFX) が、許容される最大反復回数を超えました。 詳細については、「 https://go.microsoft.com/fwlink/?linkid=2233907 (新しいウィンドウまたはタブで開く)」を参照してください。
解決方法
前提条件
この問題を調査する前に、シナリオでサポートされている証明書の種類を把握しておく必要があります。
- POS がオフライン モードで実行されている場合は、ローカル証明書のみがサポートされます。
- コマース スケール ユニット (CSU) (クラウド) では、Azure Key Vault からの証明書のみがサポートされます。
- セルフホステッド CSU の場合、Azure Key Vault とローカル ストレージの両方からの証明書がサポートされます。
パスワードなしで PFX 証明書をエクスポートする
Azure Key Vault の証明書をデジタル署名に使用する場合、Azure Key Vault にアップロードされる証明書には秘密キーが含まれている必要があり、パスワードは含まれません。
証明書のエクスポート ウィザードを使用して証明書をエクスポートする場合は、 個人情報交換 (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)