Я работал с версией 8.0 сервера приложений Websphere. Я пытался получить SSLSocketFactory от JSSEHelper. Несмотря на то что
- Я успешно получил SSLSocketFactory
- Я успешно получил SSLSocket от SSLSocketFactory
- Я успешно установил безопасное соединение,
но наборы шифров, предоставленные в сообщении ClientHello, не соответствовали ни
- Настройки SSL CellDefault/Настройки SSL NodeDefault/NodeDefaultnor
- ни к моей собственной пользовательской конфигурации SSL.
Решение этой проблемы состояло в том, чтобы избежать получения SSLSocketFactory из JSSEHelper. Вместо использования JSSEHelper я должен использовать статический метод getDefault() из класса SSLSocketFactory следующим образом:
public SSLSocket getSslSocket(Properties sslProps) {
SSLSocketFactory factory = SSLSocketFactory.getDefault();
SSLSocket socket = null;
try {
socket = (SSLSocket) factory.createSocket();
} catch (IOException e) {
e.printStackTrace();
}
return socket;
}
Более подробную информацию можно найти здесь:
Кто-нибудь может пояснить, почему это утверждение:
slSocketFactory = jsseHelper.getSSLSocketFactory(sslMap, sslProps)
возвращает неверную «фабрику сокетов SSL», в то время как этот оператор
SSLSocketFactory.getDefault()
возвращает правильный?
Кроме того, в каком случае я должен использовать фабрику, полученную из этих операторов соответственно?
- SSLSocketFactory.getDefault();
- jsseHelper.getSSLSocketFactory(sslMap, sslProps)
- getSSLSocketFactory (java.lang.String sslAliasName, java.util.Map connectionInfo, прослушиватель SSLConfigChangeListener)
Спасибо большое