Verbinden Sie einen FTPS-Server in Java

Muhammad Adil 12 Oktober 2023
  1. FTP vs. FTPS
  2. Verbinden Sie einen FTPS-Server in Java
Verbinden Sie einen FTPS-Server in Java

File Transfer Protocol Secure (FTPS) ist eine sichere Version des File Transfer Protocol (FTP), das SSL/TLS-Verschlüsselung verwendet, um die zwischen einem Client und einem Server übertragenen Daten zu schützen. In diesem Artikel wird beschrieben, wie Sie mithilfe der Java Secure Channel (JSSE) API eine Verbindung zu einem FTPS-Server in Java herstellen.

FTP vs. FTPS

FTP ist ein altes und weit verbreitetes Protokoll zum Übertragen von Dateien zwischen Computern. Obwohl es immer noch weit verbreitet ist, weist es mehrere Sicherheitsprobleme auf, die es für viele Anwendungen ungeeignet machen.

Eines der Hauptprobleme ist die fehlende Verschlüsselung, die es Lauschern ermöglicht, vertrauliche Informationen wie Passwörter und übertragene Daten abzufangen und zu lesen.

FTPS ist eine Erweiterung von FTP, die verschlüsselte Verbindungen und verbesserte Sicherheit bietet. Es gibt zwei Arten von FTPS: explizites FTPS und implizites FTPS.

Bei explizitem FTPS fordert der Client eine sichere Verbindung an, während bei implizitem FTPS der Server eine sichere Verbindung verlangt und der Client sich daran halten muss. In diesem Artikel konzentrieren wir uns auf explizites FTPS.

Verbinden Sie einen FTPS-Server in Java

Um diesem Tutorial zu folgen, müssen Sie Folgendes auf Ihrem Computer installiert haben:

  1. Java-Entwicklungskit (JDK)
  2. Ein FTPS-Server, zu dem eine Verbindung hergestellt werden soll (z. B. FileZilla Server)
  3. Ein Texteditor
  • Einrichten des FTPS-Servers

    Der erste Schritt besteht darin, einen FTPS-Server einzurichten. Sie können jeden FTPS-Server verwenden, der explizites FTPS unterstützt, z. B. FileZilla Server.

    Gehen Sie folgendermaßen vor, um FileZilla Server einzurichten:

    1. Laden Sie FileZilla Server von der offiziellen Website herunter und installieren Sie es.
    2. Starten Sie die FileZilla Server-Schnittstelle.
    3. Klicken Sie auf Bearbeiten > Einstellungen.
    4. Gehen Sie zur Registerkarte FTP Einstellungen und aktivieren Sie die Option FTP über SSL/TLS.
    5. Wählen Sie im Abschnitt SSL/TLS-Einstellungen die Option "Nur sichere FTP (FTPS)-Verbindungen zulassen".
    6. Klicken Sie auf OK, um die Änderungen zu speichern.
    7. Starten Sie den Server, indem Sie auf Datei > Server starten klicken.
  • Schreiben des Java-Codes

    Nachdem wir den FTPS-Server eingerichtet haben, können wir den Java-Code schreiben, um eine Verbindung zu ihm herzustellen. Wir verwenden die Java Secure Channel (JSSE) API, um eine sichere Verbindung zum FTPS-Server herzustellen.

    Hier ist der Code, um sich mit einem FTPS-Server zu verbinden:

    import java.io.IOException;
    import java.security.NoSuchAlgorithmException;
    import org.apache.commons.net.ftp.FTPSClient;
    public class FTPSExample {
      public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
        FTPSClient ftpsClient = new FTPSClient();
        ftpsClient.connect("ftpserver.com", 21);
        ftpsClient.login("username", "password");
        ftpsClient.execPROT("P");
        ftpsClient.execPBSZ(0);
        ftpsClient.disconnect();
      }
    }
    

    Lassen Sie uns den Code aufschlüsseln und sehen, was jeder Teil tut:

    1. Die Klasse FTPSClient ist Teil der Apache Commons Net-Bibliothek und implementiert das FTP-Protokoll mit Unterstützung für sichere Verbindungen mit SSL/TLS.
    2. Die Methode connect verbindet sich mit dem FTPS-Server. Es nimmt den Hostnamen, die IP-Adresse und die Portnummer (normalerweise 21) des Servers als Argumente.
    3. Mit der Methode login erfolgt die Anmeldung am FTPS-Server mit dem angegebenen Benutzernamen und Passwort.
    4. Die Methode execPROT fordert eine sichere Verbindung an. Das Argument "P" gibt an, dass wir eine private (verschlüsselte) Verbindung verwenden wollen.
    5. Die Methode execPBSZ legt die Schutzpuffergröße fest. Ein Wert von 0 deaktiviert Schutzpuffer.
    6. Abschließend wird mit der Methode disconnect die Verbindung zum FTPS-Server getrennt.
  • Ausführen des Codes

    Um den Code auszuführen, müssen Sie die Apache Commons Net-Bibliothek in Ihrem Klassenpfad haben. Sie können die Bibliothek von der Apache Commons Net-Website herunterladen.

    Kompilieren Sie den Code mit dem folgenden Befehl:

    javac FTPSExample.java
    

    Führen Sie dann den Code mit dem folgenden Befehl aus:

    java FTPSExample
    

    Wenn alles korrekt eingerichtet ist, sollten Sie keine Ausgabe sehen, was bedeutet, dass die Verbindung zum FTPS-Server erfolgreich war.

    Hinweis: Dieser Code wird auf keinem Online-Compiler ausgeführt, da Sie eine FTPS-Verbindung einrichten müssen, um den Code auszuführen.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook