Я кодирую клиент-серверное приложение для чата. Я хочу зашифровать соединение между этими двумя. Я делаю это в первый раз, и мне трудно. Насколько я понимаю, мне нужно хранилище доверенных сертификатов для клиента и хранилище ключей для сервера. Я следовал этому руководству, чтобы создать их: http://peoplesofttutorial.com/generating-key-store-and-trust-store-using-keytool/
Клиент:
System.setProperty("javax.net.ssl.trustStore" , "hrms.truststore");
System.setProperty("javax.net.ssl.trustStorePassword" , "123456");
SSLSocketFactory sslsf = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLsocket = (SSLSocket) sslsf.createSocket(server, port);
Сервер:
System.setProperty("javax.net.ssl.keyStore" , "pskey.keystore");
System.setProperty("javax.net.ssl.keyStorePassword","123456");
SSLServerSocketFactory sslsocketfactory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
sslserversocket = (SSLServerSocket) sslsocketfactory.createServerSocket(Port);
Сервер запускается корректно. Когда я подключаю клиент, который работает на том же компьютере, что и сервер, я могу подключиться без каких-либо проблем, но когда я подключаюсь с другого компьютера, который находится в той же сети, я получаю эту ошибку: javax.net.ssl.SSLException: Received фатальное предупреждение: internal_error
Может ли кто-нибудь помочь мне решить эту ошибку?
System.setProperty("javax.net.debug", "ssl");
- person nandsito   schedule 19.03.2017