0

通常のソケット通信を保護するにはどうすればよいですか?専用のSSLポート(5223)にのみ接続できるJabberクライアントを作成しました(SSLSocketを使用)。通常の方法は、Jabber標準ポート5222に接続して要求することstarttlsです。どうすればそれを達成できますか?

4

2 に答える 2

1

何を求めているのか完全にはわかりませんが、SSLSocketFactory.createSocket()メソッドを使用して、既存の通常の(非セキュア)ソケットにセキュアソケットを重ねることができます。これは、starttlsなどを使用してソケットを「アップグレード」する1つの方法です。しかし、これは困難な方法で物事を行っています。ほぼ確実に、XMPPライブラリはこの種の機能への高レベルのアクセスを提供します。

于 2012-01-15T22:43:10.367 に答える
1

期待管理: Jabber でこれを試したことはありません。しかし、GMail の SMTP サーバーで動作するので、おそらく...

ソケットを SSL ソケットにアップグレードする方法socketは次のとおりです。元の (非 TLS) 接続は次のとおりです。

SSLSocket sslSocket = (SSLSocket) ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket(
                       socket, 
                       socket.getInetAddress().getHostAddress(), 
                       socket.getPort(), 
                       true);
InputStream inputStream = sslSocket.getInputStream();
OutputStream outputStream = sslSocket.getOutputStream();
// reads from the socket
Scanner scanner = new Scanner(inputStream);
// writes to the socket
OutputStream outputStream = new BufferedOutputStream(outputStream);
于 2013-01-18T17:00:12.117 に答える