Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2014(UTC) Сообщений: 1 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Добрый день! На сервере установлены: - JCP - JTLS Все проверки проходят удачно. Но указать серверу приложений, что есть новый криптопровайдер не получается. В файле ssl.client.props добавил новую конфигурацию: Код:#-------------------------------------------------------------------------
# Global SSL Properties (applies to entire process)
# Указал, что по умолчанию брать конфигурацию CryptoProSSLSettings
#-------------------------------------------------------------------------
com.ibm.ssl.defaultAlias=CryptoProSSLSettings
#-------------------------------------------------------------------------
# This SSL configuration TEST for CryptoPro
# Указал параметры для JCP провайдера (возможно здесь, что-то не так ???)
#-------------------------------------------------------------------------
com.ibm.ssl.alias=CryptoProSSLSettings
com.ibm.ssl.protocol=SSL_TLS
com.ibm.ssl.securityLevel=HIGH
com.ibm.ssl.trustManager=GostX509
com.ibm.ssl.keyManager=GostX509
com.ibm.ssl.contextProvider=GostTLS
com.ibm.ssl.enableSignerExchangePrompt=gui
# KeyStore information
com.ibm.ssl.keyStoreName=JCPKeyStore
com.ibm.ssl.keyStore=/var/opt/cprocsp/users/stores/key.store
com.ibm.ssl.keyStorePassword={xor}123456
com.ibm.ssl.keyStoreType=HDImageStore
com.ibm.ssl.keyStoreProvider=JCP
com.ibm.ssl.keyStoreFileBased=true
# TrustStore information
com.ibm.ssl.trustStoreName=JCPTrustStore
com.ibm.ssl.trustStore=/var/opt/cprocsp/users/stores/trust.store
com.ibm.ssl.trustStorePassword={xor}123456
com.ibm.ssl.trustStoreType=HDImageStore
com.ibm.ssl.trustStoreProvider=JCP
com.ibm.ssl.trustStoreFileBased=true
com.ibm.ssl.trustStoreReadOnly=false
Но успеха это не принесло! При попытке выполнить строку кода: Код:SSLSocketFactoryImpl sslFact = new SSLSocketFactoryImpl();
получаем ошибку: Код:ru.CryptoPro.ssl.n a %% No alias is match
а в ответе от удаленного веб-сервера Вывожу информацию: Код: log.log(Level.INFO, "javax.net.ssl.keyStorePassword: {0}", System.getProperty("javax.net.ssl.keyStorePassword"));
log.log(Level.INFO, "javax.net.ssl.keyStore: {0}", System.getProperty("javax.net.ssl.keyStore"));
log.log(Level.INFO, "javax.net.ssl.keyStoreType: {0}", System.getProperty("javax.net.ssl.keyStoreType"));
log.log(Level.INFO, "javax.net.ssl.keyStoreProvider: {0}", System.getProperty("javax.net.ssl.keyStoreProvider"));
log.log(Level.INFO, "javax.net.ssl.trustStoreType: {0}", System.getProperty("javax.net.ssl.trustStoreType"));
log.log(Level.INFO, "javax.net.ssl.trustStore: {0}", System.getProperty("javax.net.ssl.trustStore"));
log.log(Level.INFO, "javax.net.ssl.trustStorePassword: {0}", System.getProperty("javax.net.ssl.trustStorePassword"));
log.log(Level.INFO, "javax.net.ssl.trustStoreProvider: {0}", System.getProperty("javax.net.ssl.trustStoreProvider"));
log.log(Level.INFO, "ssl.SocketFactory.provider: {0}", Security.getProperty("ssl.SocketFactory.provider"));
log.log(Level.INFO, "HDImageStore.getDir(): {0}", HDImageStore.getDir());
Получаю: Код: javax.net.ssl.keyStorePassword: 123456
javax.net.ssl.keyStore: /var/opt/cprocsp/users/stores/key.store
javax.net.ssl.keyStoreType: HDImageStore
javax.net.ssl.keyStoreProvider: IBMJCE
javax.net.ssl.trustStoreType: HDImageStore
javax.net.ssl.trustStore: /var/opt/cprocsp/users/stores/trust.store
javax.net.ssl.trustStorePassword: 123456
javax.net.ssl.trustStoreProvider: IBMJCE
ssl.SocketFactory.provider: ru.CryptoPro.ssl.SSLSocketFactoryImpl
HDImageStore.getDir(): /var/opt/cprocsp/keys/${user.name}
Видим, что провайдер у WebSphere по умолчанию IBMJCE. Значит что-то не так указал в файле ssl.client.props, либо что-то нужно прописать еще. Но где? Пытался добавить новую конфигурацию через веб-интерфес сервера приложений, но и это успеха не принесло. При попытке добавить новый KeyStore с типом HDImageStore - WebSphere ругается, что такой тип неизвестен. Самое интересное, что если выставить значения Код:
System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStore", "/var/opt/cprocsp/users/stores/key.store");
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("javax.net.ssl.keyStoreProvider", "JCP");
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStore", "/var/opt/cprocsp/users/stores/trust.store");
System.setProperty("javax.net.ssl.trustStorePassword", "123456");
System.setProperty("javax.net.ssl.trustStoreProvider", "JCP");
то все начинает работать. Так как System.setProperty выставляет значение на всю JVM, то могут сломаться другие приложения, которые используют SSL. Но как добавить новый JSSE провайдер на сервере приложений: через веб-интерфейс или же через конфиг. файл? Отредактировано пользователем 21 марта 2014 г. 4:51:38(UTC)
| Причина: Не указана
|