DHL Adapter - Could not connect to host

Shopware Version: 5.5.10
Plugin: DHL Adapter
Version: 4.16.1.55
 

Hallo,

wir versuchen das DHL Adapter Plugin von Pickware zum Laufen zu bekommen, haben aber ein Problem beim Generieren von Etiketten aus Bestellungen.

Beim Klick auf “Versandetikett hinzufügen > Bestätigen” kommt im Backend eine Fehlermeldung “DHL Webservice-Anfrage fehlgeschlagen: Could not connect to host”.

In den Logfiles steht auch kein Hinweis auf den konkreten Fehler. Siehe unten (Info: Ich habe die Daten im XML für dieses Forum anonymisiert).

Die Nutzerdaten, EKP und Teilnehmernummer sind korrekt. Hat jemand eine Idee, was hier das Problem sein könnte?

 

Vielen Dank für Eure Hilfe.

[2019-08-30 14:12:04] dhl.ERROR: SOAP action failed with code HTTP: Could not connect to host {"error":{"code":"HTTP","name":null,"detail":null,"actor":null,"header":null},"request":{"requestHeader":"","requestBody":"\nmyusername*HIDDEN*221V01PAK63063235550101200902019-08-3031.5XYZ GMBHCO ABCTEST-STR.2510627BerlinDE+4915155555555x@y.comRosa Mueller Ulrike TestAm Pfad3660123TeststadtDE-\n","responseHeader":"","responseBody":"\n"}} {"uid":"39efceb"}

 

Was kommt denn, wenn Du in der Konfiguration auf „Zugangsdaten prüfen“ drückst?

Dann kommt, dass er die Zugangsdaten erfolgreich geprüft hat. Sie stimmen also.

Hatten ein vergleichbares Problem (gleiche Fehlermeldung) nach Update vom Betriebssystem und folgendem Downgrade der PHP Version auf 7.2 für SW 5.5.10

https://forum.shopware.com/discussion/62420/deutsche-post-adapter#latest

(DHL Adapter war die Fehlermeldung analog)

Ansonsten viel Glück, ich hatte schon angefangen Netzwerktraffic / DNS zu analysieren…

 

Ein update und reboot des Betriebssystems auf dem Server ist natürlich ein hartes Stück. Ich sprech mal mit unserem DevOp, ob das ohne Weiteres möglich ist.

Wenn jemand noch weitere Ideen hat, bitte gerne her damit.

Reboot sollte ggf. reichen. Unsere Probleme kamen wahrscheinlich durch das OS Upgrade plus folgendem PHP Downgrade.

Ansonsten spuckt google im Zusammenhang mit SOAP und cant connect to host einige Hinweise aus, aber da wird auch viel im dunkeln getappt…(sprich: kann alles mögliche sein).

Feedback: Ein reboot hat das Problem nicht gelöst. Ich habe im Zusammenhang mit SOAP und “could not connect to host” Hinweise auf Probleme mit Timeouts, insbesondere im SSL Kontext gefunden. Dem kann man mit einer Erhöhung der php timeout Einstellungen beikommen.

Ich werde dieser Fährte jetzt folgen und Euch auf dem Laufenden halten.

 

Viele Grüße

Pickware hat mich kontaktiert und mit mir gemeinsam das Problen analysiert und auch gelöst. Vielen Dank für den sehr guten Support.

Anbei die Lösung, falls Ihr dasselbe Problem habt.

Ich sollte in der Console auf dem Server folgenden Befehl eingeben

curl -v -XGET 'https://cig.dhl.de/services/production/soap’;

Hier sollte die Antwort HTTP/1.1 401 Unauthorized zurückbekommen. Bei mir kam allerdings etwas anderes zurück

 

* TLSv1.2 (OUT), TLS alert, handshake failure (552):
* error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
* Closing connection 0
curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small

Dazu merkte Pickware an:

es handelt sich mit großer Wahrscheinlichkeit um den vermuteten Fehler, aktuell verwenden Sie vermutlich  openssl v.1.1.1 auf dem Server. Da DHL hier den Anforderungen aktuell noch nicht nachgekommen ist muss die die Schlüssellängen Vorgabe deaktiviert werden, anschließend sollte es ohne Probleme funktionieren.  Der Fehler “SSL routines:tls_process_ske_dhe:dh key too small” ist für das Problem verwantwortlich.

und weiter

Um den Fehler der DHL-Api zu umgehen musss in der openSSL Konfiguration, i.d.R. “/etc/ssl/openssl.cnf” die Einstellung CipherString = DEFAULT@SECLEVEL=2 zu CipherString = DEFAULT@SECLEVEL=1 geändert werden.

 

Wir haben den Hinweis umgesetzt. Das Problem ist damit bei uns behoben.

 

Viele Grüße

1 Like

Wir haben diesen Hinweis bei uns ebenfalls getestet - leider besteht das Problem nach wie vor. 

Gibt es weitere Nutzer, bei denen dieser Hinweis auch nichts geholfen hat? Gibt es weitere Lösungsansätze? 

Danke & VG 

Um den Fehler der DHL-Api zu umgehen musss in der openSSL Konfiguration, i.d.R.

„/etc/ssl/openssl.cnf“ die Einstellung 

CipherString = DEFAULT@SECLEVEL=2 

zu 

CipherString = DEFAULT@SECLEVEL=1

geändert werden.

Vielen Dank, so funktioniert es hier auch wieder nach dem Upgrade auf Debian Buster.

Was die Einstellung im Detail beduetet steht hier:
/docs/man1.1.1/man3/SSL_CTX_set_security_level.html
Bei SECLEVEL 2 muss der Key mindesten 2048 bits lang sein, bei SECLEVEL 1 nur 1024.

Wäre dennoch schön wenn DHL bald ein paar Bits für den Key spendiert :wink: