Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

4 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline zakkerone  
#1 Оставлено : 28 сентября 2010 г. 17:25:57(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

Добрый день!

Хранилище сертификатов (trustStore или keyStore) создано в крипто-про control pane, туда добавлен сертификат из хранилища контейнеров.
Код:

private static final String certificatePath = "c:\\certFolder\\certificate.cer";
private static final String keyStoreName = "HDImageStore";
private static final String keyStorePassword = "12345";
private static final String keyStorePath = "c:\\certFolder\\certificate.ks";
private static final String keyStoreAlias = "customksalias";

System.setProperty("javax.net.ssl.supportGVO", "true");
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStore", keyStorePath);
System.setProperty("javax.net.ssl.trustStorePassword", keyStorePassword);
System.setProperty("javax.net.ssl.trustStoreAlias", keyStoreAlias);

При добавлении сертификата в хранилище сертификатов из контейнера HDImageStore нам не важно изначальное имя сертификата, для идентификации ключа в хранилище используется alias, который был введен при его добавлении туда и при старте JCP из хранилища сертификатов загрузка идет по указанному нами в настройках alias'у, но JCP выдает при инициализации keyStore ошибки (чтение сертификата из указанного в настройках хранилища) "No alias is match", "No appropriate keys for handshake".
Т.о. мы полагаем, что есть какой-то default alias, который используется при инициализации системы JCP, т.к. указанный в настройках alias, который мы использовали при добавлении в хранилище сертификата очевидно игнорируется. Есть ли такой alias по умолчанию?

Отредактировано пользователем 28 сентября 2010 г. 20:04:19(UTC)  | Причина: Не указана

Offline zakkerone  
#2 Оставлено : 28 сентября 2010 г. 17:32:55(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

Код:

27.09.2010 16:08:23 ru.CryptoPro.JCP.tools.l a
INFO: Loading JCP...
27.09.2010 16:08:23 ru.CryptoPro.JCP.tools.l a
INFO: JCP loaded.
27.09.2010 16:08:23 ru.CryptoPro.ssl.d 
WARNING: %% No appropriate keys for handshake
PATH: C:\Documents and Settings\All Users\Application Data\Crypto Pro\
27.09.2010 16:08:24 ru.CryptoPro.ssl.d a
WARNING: %% No alias is match
javax.net.ssl.SSLException: java.lang.UnsupportedOperationException
at ru.CryptoPro.ssl.J.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.Y.write(Unknown Source)
at java.io.OutputStream.write(OutputStream.java:58)
at xxx.sendRequest(xxxClient.java:130)
at xxx.xxxSOAPTransport.send(xxxSOAPTransport.java:110)
at org.apache.soap.rpc.Call.invoke(Call.java:203)
at xxx.xxxCryptoExchange.xxxSOAPCall(xxxCryptoExchange.java:315)
at xxx.xxxCryptoExchange.xxxRequest(xxxCryptoExchange.java:225)
at xxx.Main.main(Main.java:23)
Caused by: java.lang.UnsupportedOperationException
at javax.crypto.CipherSpi.engineGetKeySize(DashoA13*..)
at javax.crypto.Cipher.b(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at ru.CryptoPro.ssl.gostTLS.e.a(Unknown Source)
at ru.CryptoPro.ssl.gostTLS.a.a(Unknown Source)
at ru.CryptoPro.ssl.a.a(Unknown Source)
at ru.CryptoPro.ssl.a.a(Unknown Source)
at ru.CryptoPro.ssl.K.k(Unknown Source)
at ru.CryptoPro.ssl.K.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.s.h(Unknown Source)
... 9 more
java.lang.NullPointerException
at org.apache.soap.transport.TransportMessage.getEnvelope(TransportMessage.java:379)
at org.apache.soap.transport.TransportMessage.getEnvelopeReader(TransportMessage.java:395)
at xxx.xxxSOAPTransport.send(xxxSOAPTransport.java:123)
at org.apache.soap.rpc.Call.invoke(Call.java:203)
at xxx.xxxCryptoExchange.secureSOAPCall(xxxCryptoExchange.java:315)
at xxx.xxxCryptoExchange.xxxRequest(xxxCryptoExchange.java:225)
at xxx.Main.main(Main.java:23)

Отредактировано пользователем 28 сентября 2010 г. 17:39:19(UTC)  | Причина: Не указана

Offline zakkerone  
#3 Оставлено : 28 сентября 2010 г. 20:02:53(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

работает ли параметр System.setProperty("javax.net.ssl.trustStoreAlias" ,"aliasname");?
Offline zakkerone  
#4 Оставлено : 28 сентября 2010 г. 23:21:19(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

похоже проблема связана с экспортными ограничениями по размеру ключа
Offline zakkerone  
#5 Оставлено : 29 сентября 2010 г. 3:21:00(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

После снятия экспортных ограничений появилось другое исключение, ключ у нас должен быть верным, но выдается ошибка
Код:
javax.net.ssl.SSLHandshakeException: Received fatal alert: BAD_CERTIFICATE


может ли это быть программной ошибкой? Сертификат ваш и свежий...
Offline zakkerone  
#6 Оставлено : 29 сентября 2010 г. 16:13:33(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

Извините, но служба поддержки вообще работает или нет? Think
Offline Iva  
#7 Оставлено : 4 октября 2010 г. 19:08:17(UTC)
Iva

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

zakkerone написал:

При добавлении сертификата в хранилище сертификатов из контейнера HDImageStore нам не важно изначальное имя сертификата, для идентификации ключа в хранилище используется alias, который был введен при его добавлении туда и при старте JCP из хранилища сертификатов загрузка идет по указанному нами в настройках alias'у, но JCP выдает при инициализации keyStore ошибки (чтение сертификата из указанного в настройках хранилища) "No alias is match", "No appropriate keys for handshake".
Т.о. мы полагаем, что есть какой-то default alias, который используется при инициализации системы JCP, т.к. указанный в настройках alias, который мы использовали при добавлении в хранилище сертификата очевидно игнорируется. Есть ли такой alias по умолчанию?

Нету default alias. При инициализации мы просматриваем все доступные возможности. Сообщение "No alias is match" означает, что не найдено ни одного подходящего ключа. Проверяйте,
что правильный пароль,
что ключ не только подписи, но и шифрования,
что при выпуске сертификата установлено Key Usage:Server Authentication 1.3.6.1.5.5.7.3.1 (Проверка подлинности сервера).

zakkerone написал:

Код:

Caused by: java.lang.UnsupportedOperationException
at javax.crypto.CipherSpi.engineGetKeySize(DashoA13*..)


Это несомненно экспортные ограничения. Цитата из документации на JTLS:
Цитата:

Возможна ситуация, когда установленная JRE имеет экспортные ограничения. США запрещает экспорт "сильной" криптографии и JCP с длиной ключа 256 бит попадает под это ограничение. Ограничения устанавливаются файлами local_policy.jar и US_export_policy.jar в каталоге [JRE]/jre/lib/security. Для снятия экспортных ограничений необходимо скачать файл jce_policy-6.zip с политиками со страницы http://java.sun.com/javase/downloads/index.jsp , выбирая "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6". Для отладки же можно просто скопировать US_export_policy.jar в local_policy.jar (оба файла должны присутствовать).


zakkerone написал:
После снятия экспортных ограничений появилось другое исключение, ключ у нас должен быть верным, но выдается ошибка
Код:
javax.net.ssl.SSLHandshakeException: Received fatal alert: BAD_CERTIFICATE

может ли это быть программной ошибкой? Сертификат ваш и свежий...

Я так понимаю Вы делаете сервер. alert означает, что проблема на другой стороне, на клиентской. Что используете на клиенте? Аутентификация двустороняя? Сертификат сервера поместили на клиенте в доверенные?

zakkerone написал:
Извините, но служба поддержки вообще работает или нет? Think

Конечно. Обращайтесь support@cryptopro.ru
Не забывайте указывать номер договора технической поддержки.
Offline zakkerone  
#8 Оставлено : 5 октября 2010 г. 0:27:20(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

Большое спасибо за ответ!
Цитата:
Я так понимаю Вы делаете сервер. alert означает, что проблема на другой стороне, на клиентской. Что используете на клиенте? Аутентификация двустороняя? Сертификат сервера поместили на клиенте в доверенные?
Мы делаем клиент для подключения к защищенному серверу, при подключении получаем ошибку
Код:
javax.net.ssl.SSLHandshakeException: Received fatal alert: BAD_CERTIFICATE
получается на клиенте ее можно получить если сертификата сервера нет в доверенных или там что-то не в порядке(битый, ошибки при вводе или что-то подобное)?

можно ли ее получить если на стороне клиента цепочка сертификатов для доступа к серверу сформирована неверно и в ней не хватает корневых элементов?

Отредактировано пользователем 5 октября 2010 г. 0:50:47(UTC)  | Причина: Не указана

Offline Iva  
#9 Оставлено : 5 октября 2010 г. 16:36:01(UTC)
Iva

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

Аlert означает ошибку на другой стороне. Скорее всего, двусторонняя аутентификация. На серверной стороне Ваш сертификат должны добавить в доверенные. Вы отправили им свой сертификат? Они добавили его?
Offline zakkerone  
#10 Оставлено : 5 октября 2010 г. 21:21:57(UTC)
zakkerone

Статус: Участник

Группы: Участники
Зарегистрирован: 26.09.2010(UTC)
Сообщений: 13
Откуда: Уфа

Iva написал:
Аlert означает ошибку на другой стороне. Скорее всего, двусторонняя аутентификация. На серверной стороне Ваш сертификат должны добавить в доверенные. Вы отправили им свой сертификат? Они добавили его?
Они сами его создали и передали нам, он должен быть в доверенных, но еще раз проверить не помешает, спасибо! Организация обладает сетью доверенных СЦ и УЦ, вполне может быть, что ключ создал кто-то из них, а на конечном сервере его еще нет, так что вы предположили очень верно. Спасибо!

Отредактировано пользователем 6 октября 2010 г. 11:28:53(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (3)
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.