Partage
  • Partager sur Facebook
  • Partager sur Twitter

Certificat FileZilla et transert FTP sécurisé

help me

    19 juin 2009 à 20:17:23

    Bonjour à tous,

    je suis actuellement en train de réaliser une application en Java qui doit effectuer un transfert de fichier FTP sécurité.
    Je me suis inspiré de l'interface de FileZilla client et comme serveur j'ai choisi FileZilla serveur.

    Alors voila,FileZilla serveur permet de générer un certificat.
    Dans un premier temps j'aimerais simplement me connecter à ce serveur avec un programme Java tout simple.Voici mon code :

    Code :

    import java.io.*;
    import javax.net.ssl.*;
    import java.security.KeyStore;

    class Client {
    public static final int PORT = 990;
    public static final String HOST = "127.0.0.1";

    public static final String KEYSTORE_FILE = "C:/client_keystore";
    public static final String ALGORITHM = "sunx509";
    public static final String PASSWORD = "password";
    public static DataInputStream in;
    public static void main(String[] args) {
    try {
    SSLSocket socket = null;
    KeyManagerFactory kmf;
    KeyStore ks;
    TrustManagerFactory tmf;
    SSLContext sslc;
    String line;



    kmf = KeyManagerFactory.getInstance(ALGORITHM);
    ks = KeyStore.getInstance("JKS");
    ks.load(new FileInputStream(KEYSTORE_FILE), PASSWORD.toCharArray());
    kmf.init(ks, PASSWORD.toCharArray());
    tmf = TrustManagerFactory.getInstance(ALGORITHM);
    tmf.init(ks);
    sslc = SSLContext.getInstance("TLS");
    sslc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
    SSLSocketFactory sf = sslc.getSocketFactory();
    socket = (SSLSocket) sf.createSocket(HOST, PORT);
    System.out.println("Client connecte\n");

    PrintWriter sortie = new PrintWriter(socket.getOutputStream(), true);

    // PrintWriter sortie = new PrintWriter(socket.getOutputStream());
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    in=new DataInputStream(socket.getInputStream());

    // BufferedReader br = new BufferedReader(socket.InputStreamReader(),true);

    try{

    sortie.println("user jean");
    sortie.flush();
    System.out.println("ok");
    // in.read();
    System.out.println(in.read());



    }catch(Exception e){
    System.out.println("Erreur "+e);
    }

    /* while (true) {
    try {
    line = br.readLine();
    sortie.println(line);
    sortie.flush();
    } catch (IOException e) {
    System.out.println("Erreur " + e);
    }
    }*/
    } catch (Exception e) {
    System.out.println(e);
    }
    }
    }

    Comme vous pouvez le voir,j'utilise également une clé,j'aimerais bien m'en passer et n'utiliser que le certificat de FileZilla mais je n'arrive pas à modifier cela.
    Cela me génére une erreur,et je n'arrive pas à me connecter.
    Voici ce que j'ai d'afficher dans ma console et mon erreur:
    Code :


    Client
    ok

    Erreur Javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandShakeException: sun.security.validation.ValidatorException : No trusted certificate found



    En gros il ne trouve pas de certificat de confiance....,mais moi je n'ai pas réussi à modifier mon code pour lui donner le certificat.....donc voila

    D'après mes recherches (infrutueuses) cela est du à l'algorithme qu'utilise FileZilla.

    Est ce que vous n'auriez pas une idée s'il vous plait?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter

    Certificat FileZilla et transert FTP sécurisé

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown