Мы должны использовать веб-службу, которая требует аутентификации с использованием цифрового сертификата для службы внешних данных в Case Manager, и мы отправляем данные SSL в соответствии со следующей конфигурацией:
String sslAlias = null;
String host = “serviceUrl";
String port = "443";
HashMap<Object, Object> connectionInfo = new HashMap<>();
connectionInfo.put(JSSEHelper.CONNECTION_INFO_DIRECTION, JSSEHelper.DIRECTION_OUTBOUND);
connectionInfo.put(JSSEHelper.CONNECTION_INFO_REMOTE_HOST, host);
connectionInfo.put(JSSEHelper.CONNECTION_INFO_REMOTE_PORT, Integer.parseInt(port));
connectionInfo.put(JSSEHelper.CONNECTION_INFO_ENDPOINT_NAME, JSSEHelper.ENDPOINT_IIOP);
java.util.Properties props = jsseHelper.getProperties(sslAlias, connectionInfo, null);
props.put("com.ibm.ssl.trustStore", “pathTrustCertificate");
props.put("com.ibm.ssl.alias", “MyConfigSSL");
props.put("com.ibm.ssl.trustStorePassword", "password");
props.put("com.ibm.ssl.trustStoreName", “MyTrustStore");
props.put("com.ibm.ssl.trustStoreType", "jks");
props.put("com.ibm.ssl.keyStorePassword", “password");
props.put("com.ibm.ssl.keyStore", "/C:/certificate.pfx");
props.put("com.ibm.ssl.keyStoreName", “MyKeystore");
jsseHelper.setSSLPropertiesOnThread(props);
Когда мы выполняемЕсли это так, указав хранилище ключей в файле, система сможет установить связь.Проблема в том, что клиент требует, чтобы мы использовали сертификат, установленный на сервере (Windows), что означает, что нам нужно использовать репозиторий Windows для получения сертификата, и, если мы сделаем замену, приложение больше не сможет открыть соединение, возвращая прикрепленную ошибку при установлении связи.
Конфигурации, используемые для аутентификации Windows:
props.put("com.ibm.ssl.keyStoreType", "Windows-MY");
props.put("com.ibm.ssl.keyStoreProvider", "IBMCAC");
props.put("com.ibm.ssl.keyStorePassword", “");
props.put("com.ibm.ssl.keyStore", "”);
Мы также пытались удалить свойства com.ibm.ssl.keyStorePassword и com.ibm.ssl.keyStore, но, удалив их, Websphere использует TrustStore в качестве хранилища ключей при обмене данными, что приводит к той же ошибке.
Вопросы:
Что такоеправильный способ заставить websphere использовать установленный сертификат windows для установления связи, когда группа безопасности не хочет использовать установленный сертификат websphere?
Есть ли способ указать динамический SocketSSL, поэтому можно использоватьв Windows установлено хранилище ключей?
Configuпайки на моем сервере:
Windows Server 2012 R2 Websphere Application Server 9.0
Спасибо за помощь !!