Felet "PKCS12 (PFX) utan ett angivet lösenord har överskridit maximalt antal tillåtna iterationer" i skatteintegrering
Den här artikeln innehåller en lösning på ett fel som inträffar i en skatteintegreringsprocess i Microsoft Dynamics 365 Commerce.
Symptom
När du försöker skicka ett räkenskapsdokument i en registreringsprocess visas följande felmeddelande:
PKCS12 (PFX) utan ett angivet lösenord har överskridit maximalt antal tillåtna iterationer. Mer https://go.microsoft.com/fwlink/?linkid=2233907 information finns i (Öppnas i nytt fönster eller på en ny flik).
Åtgärd
Förutsättningar
Innan du utforskar problemet bör du veta vilken typ av certifikat som stöds i ditt scenario.
- Om POS körs i offlineläge stöds endast lokala certifikat.
- För CSU (Commerce Scale Unit) (moln) stöds endast certifikat från Azure Key Vault.
- För lokalt installerad CSU stöds certifikat från både Azure Key Vault och lokal lagring.
Exportera ett PFX-certifikat utan lösenord
Om certifikat från Azure Key Vault används för digital signering ska certifikaten som laddas upp till Azure Key Vault innehålla den privata nyckeln och inte ha något lösenord.
Om du exporterar certifikatet med hjälp av guiden Certifikatexport bör ett PFX-certifikatformat (Personal Information Exchange) väljas och du uppmanas att ange ett lösenord. Certifikat med lösenord stöds dock inte för digital inloggning i Microsoft Dynamics 365 Commerce. Kör följande skript för att ta bort lösenordet från ett PFX-certifikat:
$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)