Thread Net::FTP falsche Rückgabe bei ->starttls() (13 answers)
Opened by bianca at 2020-04-06 23:56

haj
 2020-04-10 23:13
#191732 #191732
User since
2015-01-07
527 Artikel
BenutzerIn

user image
2020-04-10T18:23:12 bianca
2020-04-08T20:13:48 haj
Eine waffenscheinpflichtige Umgehung ist, diese Prüfung mit SSL_verify_mode => SSL_VERIFY_NONE abzuklemmen
Damit funktioniert die Verbindung aber ich bin nicht sicher, ob man damit ->starttls() nicht gleich weglassen kann :( Das hattest du auch so ähnlich geschrieben.

Das ist schon noch was anderes als ohne TLS zu arbeiten... und gleichzeitig auch der Hinweis, wo Du weiter suchen musst.

Wenn Dein FTP-Client im Total Commander die Verbindung fehlerfrei aufbaut: Zeigt der irgendwo das Server-Zertifikat an? Das würde es einfacher machen, aber ich fürchte, der verifiziert es auch nicht.

2020-04-10T18:23:12 bianca
2020-04-08T20:13:48 haj
Mit höheren Debug-Werten bekommst Du auch die ganzen verschickten Datenpakete.
Mit 3 bekomme ich nicht mehr als mit 2 angezeigt. An welcher Stelle muss ich das angeben?

Das gibt's wohl erst in Version 2.068... sorry.

2020-04-10T18:23:12 bianca
2020-04-08T20:13:48 haj
Kannst Du denn mit dem Firefox eine FTP-Verbindung herstellen? [...]
[...] Wie/wo löse ich das ->starttls() im FF aus?

Mein Fehler: Falsche Annahme. Firefox kann das gar nicht. Schön wär's gewesen, denn der hätte dann auch die Verbindung verweigert und dabei gleich das fehlerhafte Zertifikat gezeigt (so macht er's bei HTTPS),

2020-04-10T18:23:12 bianca
Helfen meine Antworten?

Ja, klar, die helfen. Es kann sein, dass Du das Problem lösen oder umgehen kannst (auch ohne die Validierung abzuschalten), aber dazu musst Du Dir das Serverzertifikat anschauen. Hast Du eine Kommandozeile mit openssl? Bei Linux ist das dabei, bei Strawberry Perl auch. Dem wirfst Du nun folgendes Kommando vor (den Servernamen musst Du natürlich anpassen):
Code: (dl )
openssl s_client -connect ftp.test.de:21 -starttls ftp

Als Ergebnis solltest Du auf dem Bildschirm unter anderem das eigentliche Zertifikat sehen:
Code: (dl )
1
2
3
-----BEGIN CERTIFICATE-----
Unleserliches Kauderwelsch
-----END CERTIFICATE-----

Außerdem kannst Du der Ausgabe entnehmen:
  • Das Subject, für das das Zertifikat ausgestellt wurde. Im Feld CN= sollte der Servername stehen.
  • Der Issuer ist der, der für das Zertifikat gradesteht.

Was kannst Du damit machen:
  • Wenn das Subject nicht mit dem von Dir verwendeten Host-Namen übereinstimmt, dann kannst Du prüfen, ob beide zur gleichen IP-Adresse führen: Vielleicht ist der Host-Name, den Du verwendest, nur ein DNS-Alias. Dann kannst Du das Problem lösen, in dem Du den Host-Namen angibst, für den das Zertifikat ausgestellt wurde.
  • Wenn der Issuer nicht eine der "offiziell bekannten" Zertifikatsverwalter ist, dann kannst Du sein Zertifikat bei Dir importieren. Das ist aber wieder ein bisschen waffenscheinpflichtig, das verschiebe ich aufs nächste Mal.

View full thread Net::FTP falsche Rückgabe bei ->starttls()