残念ながら私はSSLを完全に新しくしています。現在、私はクライアントとJavaのサーバーアプリケーションとの間の安全な接続を確立しようとしています。以下のコードが私のために働きます(送信されたデータは暗号化されています)。JavaでSSLを正しく使用するには?
クライアント側:
socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(host, port);
socket.setUseClientMode(true);
socket.setEnabledCipherSuites(socket.getSupportedCipherSuites());
socket.startHandshake();
サーバー側:
sslServerSocket = (SSLServerSocket) serverSocketFactory.createServerSocket(requestPort());
sslServerSocket.setUseClientMode(false);
sslServerSocket.setEnabledCipherSuites(sslServerSocket.getSupportedCipherSuites());
すでにsocket.setUseClientMode(true);は既にクライアントであるため、冗長です。 'sslServerSocket.setUseClientMode(false);'はあなたが既にサーバーであるため冗長です。 socket.setEnabledCipherSuites(socket.getSupportedCipherSuites()); 'は安全ではありません。 'socket.startHandshake();'は不要です。 – EJP
さて、そうする方法を教えてください。そして、なぜこれは安全ではないのですか?私が言ったように、私はSSLの初心者ですので、少し説明していただければ幸いです。 –
これを正しく行うには、私が言及したすべてのコードを削除することです。 'サポートされている'暗号スイート 'には、安全性に欠けるものも含まれています。あなたのコードはそれらを使わずに動作するはずです。さもなければどこかで証明書の問題があります。 – EJP