Connexion SSL Socket
Comment puis-je créer un Socket SSL connexion?
J'ai vraiment besoin de créer un fichier de clés? Ce fichier de clés doit être partagé avec tous mes applications client?
J'ai créer un serveur avec le code suivant:
SSLServerSocketFactory sslserversocketfactory = (SSLServerSocketFactory) SSLServerSocketFactory
.getDefault();
SSLServerSocket sslserversocket = (SSLServerSocket) sslserversocketfactory
.createServerSocket(ServerProperties.getInstance()
.getVSSPAuthenticationPort());
J'ai créer un client sur android avec le code suivant:
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory
.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(
host, authPort);
sslsocket.startHandshake();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
sslsocket.getOutputStream()));
BufferedReader reader = new BufferedReader(new InputStreamReader(
sslsocket.getInputStream()));
Mais quand j'essaie de me connecter, le message d'erreur suivant est avaient envoyé:
javax.net.ssl.SSLHandshakeException: no cipher suites in common
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:266)
at sun.security.ssl.ServerHandshaker.chooseCipherSuite(ServerHandshaker.java:894)
at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:622)
at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:167)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
source d'informationauteur Victor | 2013-09-13
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un certificat pour établir une connexion ssl, vous pouvez charger le certificat à l'intérieur d'un fichier de clés ou vous pouvez charger le certificat lui-même. Je vais montrer quelques exemples pour le fichier de clés option.
Votre code a besoin de quelques paramètres d'exécution :
Vous pouvez également charger le fichier de clés avec code java , la solution la plus simple pour cela est de définir les propriétés du système:
Aussi, vous pouvez charger le fichier de clés avec une façon différente, c'est plus compliqué, mais vous avez la possibilité de faire des choses plus complexes :
Pour les clients il y a quelques changements dans le code dernières lignes, les 3 dernières lignes seront remplacés par ceux-ci :
Si vous voulez charger un fichier de clés pour android le type devra être "BKS" et non pas "JKS". Vous pouvez trouver facilement des ressources pour la création d'un fichier de clés.