Créer une application avec des SSLSocket Java
Je veux créer une application utilisation SSLSocket
: client d'envoyer un String
au serveur et le serveur sera en majuscules que String
et de les renvoyer au client pour l'affichage.
SSLServer
public class SSLServer {
public static void main(String args[]) throws Exception
{
try{
//Creaet a SSLServersocket
SSLServerSocketFactory factory=(SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
SSLServerSocket sslserversocket=(SSLServerSocket) factory.createServerSocket(1234);
//Tạo 1 đối tượng Socket từ serversocket để lắng nghe và chấp nhận kết nối từ client
SSLSocket sslsocket=(SSLSocket) sslserversocket.accept();
//Tao cac luong de nhan va gui du lieu cua client
DataInputStream is=new DataInputStream(sslsocket.getInputStream());
PrintStream os=new PrintStream(sslsocket.getOutputStream());
while(true) //khi dang ket noi voi client
{
//Doc du lieu den
String input=is.readUTF();
String ketqua=input.toUpperCase();
//Du lieu tra ve
os.println(ketqua);
}
}
catch(IOException e)
{
System.out.print(e);
}
}
}
SSLClient
public class SSLClient {
public static void main(String args[])
{
try
{
//Mo 1 client socket den server voi so cong va dia chi xac dinh
SSLSocketFactory factory=(SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket=(SSLSocket) factory.createSocket("127.0.0.1",1234);
//Tao luong nhan va gui du lieu len server
DataOutputStream os=new DataOutputStream(sslsocket.getOutputStream());
DataInputStream is=new DataInputStream(sslsocket.getInputStream());
//Gui du lieu len server
String str="helloworld";
os.writeBytes(str);
//Nhan du lieu da qua xu li tu server ve
String responseStr;
if((responseStr=is.readUTF())!=null)
{
System.out.println(responseStr);
}
os.close();
is.close();
sslsocket.close();
}
catch(UnknownHostException e)
{
System.out.println(e.getMessage());
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
}
}
Lors de l'exécution SSLServer
. Il affiche cette erreur:
javax.net.ssl.SSLException: No available certificate or key corresponds
to the SSL cipher suites which are enabled
J'ai recherche et faire un peu de moyens, mais.. Pouvez-vous m'aider.
serveur au démarrage vous donne cette exception? sur quelle ligne? avez-vous googlé pour cette erreur?
Ces exemples vous aideront. Vous aurez besoin de corriger certificat SSL dans le fichier de stockage des clés. exemple 1 exemple 2
J'ai vu ceux-ci: github.com/gpotter2/SSLKeystoreFactories qui sont les 2 classes qui facilitent la création de sockets SSL. C'est assez vieux mais toujours de travail
Ces exemples vous aideront. Vous aurez besoin de corriger certificat SSL dans le fichier de stockage des clés. exemple 1 exemple 2
J'ai vu ceux-ci: github.com/gpotter2/SSLKeystoreFactories qui sont les 2 classes qui facilitent la création de sockets SSL. C'est assez vieux mais toujours de travail
OriginalL'auteur user1871578 | 2012-12-14
Vous devez vous connecter pour publier un commentaire.
Cela va générer de certificat:
Entrez votre mot de passe et que le démarrage de votre serveur avec ssl, les informations de débogage(mis yourKEYSTORE dans le répertoire avec SSLServer.class):
Que de démarrer votre client(mis yourKEYSTORE dans le répertoire avec SSLClient.class):
OriginalL'auteur corVaroxid
Vérifier les certificats que vous avez installés. Assurez-vous qu'ils soutiennent les suites de chiffrement que vous êtes en négociation.
OriginalL'auteur TheQuickBrownFox
@corVaroxid réponse est correct. Mais si vous souhaitez définir des configurations par programme à éviter paramètres globaux (comme moi), vous pouvez aller comme ci-dessous (Kotlin):
Ou dans Java:
OriginalL'auteur Mir-Ismaili