[Java] FTP über SSL mit untrusted certificate

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Chillikid, 26. April 2010 .

Schlagworte:
  1. 26. April 2010
    FTP über SSL mit untrusted certificate

    Hey Leute,

    ich habe 'nen Problem mit FTPS (von net-commons): Das Zertifikat von dem Server, zu dem verbunden werden soll, ist abgelaufen und auch sowieso self-signed.

    Ich hab mich schon etliche Stunden damit rumgeschlagen und gegoogelt, aber nichts will helfen.
    An vielen Stellen wird vorgeschlagen, dass man einen eigenen TrustManager erstellt, der einfach alles durchlässt:

    Code:
    TrustManager[] trustAllCerts = new TrustManager[]
     {
     new X509TrustManager()
     {
     public X509Certificate[] getAcceptedIssuers()
     {
     return null;
     }
    
     public void checkClientTrusted(X509Certificate[] certs, String authType)
     {
     }
    
     public void checkServerTrusted(X509Certificate[] certs, String authType)
     {
     }
     }
     };
    Das Zertifikat wird sogar angenommen, d.h. die Verbindung wird aufgebaut, aber wenn ich dann Commands senden will bekomme ich folgenden Error:
    Code:
    No available certificate or key corresponds to the SSL cipher suites which are enabled.
    javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
     at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:307)
     at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:253)
     at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:489)
     at org.apache.commons.net.ftp.FTPSClient._openDataConnection_(FTPSClient.java:494)
     at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
     at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
     at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
     at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093)
    Ich habe schon alles mögliche versucht, aber bekomme es einfach nicht zum laufen. Java muss das Zertifikat irgendwie akzeptieren, mir wäre auch egal, wenn man es in den zentralen Keystore von Java importieren müsse, nur habe ich einfach keine Ahnung wie ich das mache, noch, wie ich das zu importierende Zertifikat überhaupt vom Server bekomme. Denn mit den X509Certificate-Arrays, die übergeben werden, weiß ich nichts anzufangen...

    Wäre echt super, wenn mir jemand helfen kann, bei SSL habe ich leider nicht so den Durchblick.

    Chillikid
     
  2. 14. Februar 2011
    AW: FTP über SSL mit untrusted certificate

    Wollt grad nen Thread aufmachen und hab zum Glück doch noch vorher die Sufu benutzt

    Ich hock jetzt am gleichen Problem!

    Benutze auch die Apache net API mit der FTPSClient Klasse.

    Server zu dem ich connecten will hat auch nen selbst erstelltes und zugleich veraltetes Zertifikat.

    Ich habs jetzt auch geschafft mich wenigstens zu verbinden, krieg aber auch nicht mehr hin

    Verzeichnis wechseln geht und aktuelles Verzeichnis ausgeben (pwd) geht auch, aber ich kann keine Dateien/Verzeichnisse auflisten oder empfangen/übertragen.

    Der bleibt immer bei "Opening data Channel" hängen.

    Aber sonst krieg ich keine Fehlermeldung oder ne Exception.

    Hast du des damals hingekriegt?
    Oder hat ein anderer ne Ahnung davon?

    Dankeschön

    MfG
     
  3. 14. Februar 2011
    AW: FTP über SSL mit untrusted certificate

    Nein, tut mir leid. Ich habe mich damals zum Glück nicht mehr weiter damit beschäftigen müssen, weil letztlich ein gültiges Zertifikat angeschafft wurde.

    Mein nächster Ansatz wäre gewesen, das Zertifikat in die Java-Umgebung zu importieren. Das würde aber nicht im Programm ablaufen, sondern mit einem externen Tool:
    http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html

    Vielleicht hilft dir das ja weiter, ich wünsch dir viel Glück

    // Ich meine mich zu erinnern, dass auch innerhalb des Programms auf irgendeine Weise ein Zertifikat geladen werden konnte. Wie das genau ging, weiß ich aber leider nicht mehr.
     
  4. 17. Februar 2011
    AW: FTP über SSL mit untrusted certificate

    Habs jetzt hinbekommen.

    War ne ganz blöde Sache...
    Dank dem TrustManager konnte man ja ne Verbindung aufbauen und sich einloggen etc. aber ich konnte keine Dateien auflisten usw...


    Aber ich habd as gleiche Prob. mit WinSCP gehabt und da wir ne Proxy haben in der Firma, hab ich erstmal den Netzwerkadmin angecallt dass der mir Port 990 freischalten soll.

    Gesagt getan, ich konnte aber immernoch keine Dateien auflisten etc.

    Aber ich konnte mit WinSCP Dateien übertragen etc. Namen ändern blabla

    FTP braucht ja 2 Ports, Steuerung und Daten und der Steuerport 990 war freigeschaltet aber die Datenports (990 aufwärts) waren ja noch zu.....


    Joa jetzt sind die für mich auch offen und es läuft
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.