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