私はWebsphereアプリケーションサーバーの8.0バージョンで作業していました。私はJSSEHelperからSSLSocketFactoryを取得しようとしていました。私はsuccessfulyのSSLSocketFactory JSSEHelperはWebsphere 8.0で安全な接続を確保するための正しいSSLSocketFactoryを提供していません
- が、私はsuccessfulyのSSLSocketFactory から
- をのSSLSocketを持っている私はsuccessfuly、安全な接続を確立
が、ClientHelloメッセージで提供される暗号スイートは対応していますどちらもありません〜
- CellDefault SSL設定/ NodeDefault SSL Settin gs/NodeDefaultnor
- また、独自のカスタムSSL設定にも該当しません。
この問題を解決するには、JSSEHelperからのSSLSocketFactoryを取得避けることでした。代わりにJSSEHelperを使用して、私はwhisの方法でのSSLSocketFactoryクラスから静的メソッドのgetDefault()を使用する必要があります。
public SSLSocket getSslSocket(Properties sslProps) {
SSLSocketFactory factory = SSLSocketFactory.getDefault();
SSLSocket socket = null;
try {
socket = (SSLSocket) factory.createSocket();
} catch (IOException e) {
e.printStackTrace();
}
return socket;
}
詳細はhere見つけることができます:
誰もがなぜこれを明確にしてくださいでしたステートメント:
このステートメントで間違った「SSLソケットファクトリ」が返される
SSLSocketFactory.getDefault()
正しいものを返しますか?
また、これらのステートメントからそれぞれ取得したファクトリを使用する必要がありますか?
- SSLSocketFactory.getDefault();
- jsseHelper.getSSLSocketFactory(sslMap、sslProps)
- getSSLSocketFactory(java.lang.StringでsslAliasName、java.util.Map connectionInfo、SSLConfigChangeListenerリスナー)
暗号はSSLソケットに設定されています。 WASカスタムソケットファクトリを使用している場合、暗号はSSLソケットに直接設定されます。 WebSphereでSSLSocketFactory.getDefault()を呼び出す場合は、WebSphereのカスタムSSLSocketFactoryが取得され、WASは返されたSSLソケットの暗号の設定を処理します。 JSSEからSSLSocketFactoryを取得すると、たとえばkeystoreやtruststoreなどのSSL構成情報に基づいて作成されたJSSE SSLSocketFactoryが取得されますが、ソケットファクトリでは暗号を設定できません。 – Alaine
特定のプロパティに基づいて構築されたSSLSocketFactoryまたはconnectionInfoへの動的な送信接続が必要な場合は、JSSEHelper.getSSLSocketFactory(connectionInfo、properties)を使用します。 JSSEHelper.getSSLSocketFactory(別名、connectionInfo、listener)を使用して、接続情報に基づいて、またはリスナーに関連付けられたSSLコンフィグレーションのソケットファクトリを取得します。私は、工場で暗号を設定していないJSSEソケットファクトリを返します。 – Alaine
本当にありがとうございます。これはとても役に立ちました! –