Partager via


Erreur « PKCS12 (PFX) sans mot de passe fourni a dépassé le nombre maximal d’itérations autorisées » dans l’intégration fiscale

Cet article fournit une solution pour une erreur qui se produit dans un processus d’intégration fiscale dans Microsoft Dynamics 365 Commerce.

Symptômes

Dans un processus d’inscription fiscale, lorsque vous essayez d’envoyer un document fiscal, vous recevez le message d’erreur suivant :

PKCS12 (PFX) sans mot de passe fourni a dépassé le nombre maximal d’itérations autorisées. Pour plus d’informations, consultez https://go.microsoft.com/fwlink/?linkid=2233907 (Ouvre dans une nouvelle fenêtre ou un nouvel onglet).

Résolution

Prerequisites

Avant d’explorer le problème, vous devez savoir quel type de certificats est pris en charge dans votre scénario.

  • Si le point de vente s’exécute en mode hors connexion, seuls les certificats locaux sont pris en charge.
  • Pour l’unité d’échelle commerciale (CSU) (cloud), seuls les certificats d’Azure Key Vault sont pris en charge.
  • Pour l’authentification unique auto-hébergée, les certificats d’Azure Key Vault et de stockage local sont pris en charge.

Exporter un certificat PFX sans mot de passe

Si les certificats d’Azure Key Vault sont utilisés pour la signature numérique, les certificats chargés vers Azure Key Vault doivent contenir la clé privée et n’ont pas de mot de passe.

Si vous exportez le certificat à l’aide de l’Assistant Exportation de certificat, un format de certificat PFX (Personal Information Exchange) doit être sélectionné et vous êtes invité à entrer un mot de passe. Toutefois, les certificats avec mots de passe ne sont pas pris en charge pour la connexion numérique dans Microsoft Dynamics 365 Commerce. Exécutez le script suivant pour supprimer le mot de passe d’un certificat 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)

Plus d’informations