Поделиться через


Ошибка "PKCS12 (PFX) без указанного пароля превысила максимально допустимые итерации" в фискальной интеграции

В этой статье представлено решение для ошибки, которая возникает в процессе фискальной интеграции в Microsoft Dynamics 365 Commerce.

Симптомы

В процессе фискальной регистрации при попытке отправить финансовый документ появляется следующее сообщение об ошибке:

PKCS12 (PFX) без указанного пароля превысил максимально допустимые итерации. Дополнительные сведения см. в разделе https://go.microsoft.com/fwlink/?linkid=2233907 (Открывается в новом окне или вкладке).

Разрешение

Предварительные требования

Прежде чем изучать проблему, следует знать, какой тип сертификатов поддерживается в вашем сценарии.

Экспорт сертификата 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)

Дополнительная информация