Question

Je suis en train de comprendre ce qui se passe dans ce code.

KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());        
FileInputStream instream = new FileInputStream(new File("my.keystore")); 
try {
    trustStore.load(instream, "nopassword".toCharArray());
} finally {
    instream.close();
}

SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);

Mes questions:

trustStore.load(instream, "nopassword".toCharArray()); fait quoi exactement? La lecture de la documentation load() chargera des données KeyStore à partir d'un flux d'entrée (qui est juste un fichier vide nous venons de créer), en utilisant une quelconque « nopassword ». Pourquoi ne pas simplement le charger avec null comme paramètre InputStream et une chaîne vide comme champ de mot de passe?

Et puis ce qui se passe quand ce KeyStore vide est transmis au constructeur SSLSocketFactory? Quel est le résultat d'une telle opération?

Ou - est-ce simplement un exemple où dans une application réelle que vous auriez à mettre en fait une référence à un fichier existant keystore / mot de passe

Était-ce utile?

La solution

  

Ou - est-ce simplement un exemple où dans une application réelle que vous auriez à mettre en fait une référence à un fichier existant keystore / mot de passe

Il semble vraiment de cette façon. Il n'y a pas de fichier distribué "my.keystore" soit dans les distributions binaires ou source de HttpClient 4.0.1. Pour que cela fonctionne, vous devez créer un fichier de clés réelle. Vous pouvez utiliser soit keytool ou Portecle .

Cet exemple vous montre comment utiliser un magasin de confiance différent de celui que les utilisations JVM par défaut ($ JAVA_HOME / jre / lib / security / cacerts) pour cette instance de DefaultHttpClient. Ceci est utile lorsqu'un site SSL utilise un certificat signé par leur propre maison autorité de certification . La connexion SSL ne sera établie lorsque est reconnu le signataire du certificat du serveur. L'entrée de Wikipedia sur TLS est une introduction décente si vous n'êtes pas familier avec la concept.

Autres conseils

Cet exemple essaie de vous montrer comment charger votre propre boutique de confiance. Pour obtenir cet exemple de travail, vous devez avoir un fichier appelé « my.keystore » dans votre répertoire courant et le mot de passe est keystore « nopassword ».

S'il vous plaît new File("my.keystore") note ne crée pas nécessairement un nouveau fichier. Il crée simplement un pointage objet de fichier sur le chemin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top