Freigeben über


Fehler "PKCS12 (PFX) ohne angegebenes Kennwort hat maximal zulässige Iterationen überschritten" in der Fiskalintegration

Dieser Artikel enthält eine Lösung für einen Fehler, der in einem Geschäftsintegrationsprozess in Microsoft Dynamics 365 Commerce auftritt.

Problembeschreibung

Wenn Sie versuchen, ein Geschäftsdokument zu übermitteln, erhalten Sie in einem Geschäftsregistrierungsprozess die folgende Fehlermeldung:

PKCS12 (PFX) ohne angegebenes Kennwort hat maximal zulässige Iterationen überschritten. Weitere Informationen finden Sie https://go.microsoft.com/fwlink/?linkid=2233907 unter (Im neuen Fenster oder auf der neuen Registerkarte geöffnet).

Lösung

Voraussetzungen

Bevor Sie das Problem untersuchen, sollten Sie wissen, welche Art von Zertifikaten in Ihrem Szenario unterstützt wird.

  • Wenn POS im Offlinemodus ausgeführt wird, werden nur lokale Zertifikate unterstützt.
  • Für Commerce Scale Unit (SPD) (Cloud) werden nur Zertifikate aus Azure Key Vault unterstützt.
  • Für selbst gehostete SPD werden Zertifikate aus Azure Key Vault und lokalem Speicher unterstützt.

Exportieren eines PFX-Zertifikats ohne Kennwort

Wenn Zertifikate aus Azure Key Vault für die digitale Signatur verwendet werden, sollten die in Azure Key Vault hochgeladenen Zertifikate den privaten Schlüssel enthalten und kein Kennwort haben.

Wenn Sie das Zertifikat mithilfe des Zertifikatexport-Assistenten exportieren, sollte ein PFX-Zertifikatformat (Personal Information Exchange) ausgewählt werden, und Sie werden aufgefordert, ein Kennwort einzugeben. Zertifikate mit Kennwörtern werden jedoch für die digitale Anmeldung in Microsoft Dynamics 365 Commerce nicht unterstützt. Führen Sie das folgende Skript aus, um das Kennwort aus einem PFX-Zertifikat zu entfernen:

$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)

Weitere Informationen