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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline zakkerone  
#11 Оставлено : 16 октября 2010 г. 23:14:30(UTC)
zakkerone

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

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

Цитата:
Сертификат сервера поместили на клиенте в доверенные?

Как это сделать в control pane JCP?

И для установления двустороннего соединения нужно в хранилище сертификатов добавлять клиентский сертификат и сертификат сервера? будет ли это аналогом добавления сертификата сервера в доверенные? или это нужно сделать для контейнера сертификатов HDImageStore?


При копировании сертификата из контейнера control pane jcp в хранилище сертификатов, используемое для установления защищенного соединения копируется ли ключ вместе с сертификатом?

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

Offline Iva  
#12 Оставлено : 18 октября 2010 г. 18:26:38(UTC)
Iva

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

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

Сертификат сервера или сертификат центра, который подписывал сертификат сервера, можно поместить в любое хранилище. Потом надо сказать, что это хранилище сертификатов будет доверенным для JTLS. Например
System.setProperty("javax.net.ssl.trustStoreType","HDImageStore");
System.setProperty("javax.net.ssl.trustStore","C:\\Java\\jcp\\trust");
System.setProperty("javax.net.ssl.trustStorePassword","password");
Подробнее написано в документе tls.html "Руководство программиста КриптоПро JTLS"
При копировании сертификата, ключ с ним не копируется. При копировании контейнера одновременно копируются секретный ключ и его цепочка сертификатов.
Offline zakkerone  
#13 Оставлено : 18 октября 2010 г. 18:33:52(UTC)
zakkerone

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

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

Iva написал:

При копировании сертификата, ключ с ним не копируется. При копировании контейнера одновременно копируются секретный ключ и его цепочка сертификатов.
Можно ли скопировать контейнер в хранилище сертификатов?, которое будет указано через
System.setProperty("javax.net.ssl.trustStoreType","HDImageStore");
System.setProperty("javax.net.ssl.trustStore","C:\\Java\\jcp\\trust");
System.setProperty("javax.net.ssl.trustStorePassword","password");
Offline Iva  
#14 Оставлено : 18 октября 2010 г. 19:01:01(UTC)
Iva

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

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

Хранилище состоит из двух частей: хранилище контейнеров и хранилище сертификатов. Контейнер это закрытый ключ вместе со своим сертификатом или цепочкой сертификатов. Хранилище контейнеров определяется типом, например HDImageStore. Для каждого пользователя хранилище контейнеров одно. Для JTLS надо чтоб Ваш секретный ключ был доступен в хранилище определеном настройками
System.setProperty("javax.net.ssl.keyStoreType","HDImageStore");
System.setProperty("javax.net.ssl.keyStorePassword","password");
Хранилище сертификатов привязано к файлу. Их может быть сколько угодно. Для JTLS надо чтоб сертификат сервера, был доступен в хранилище, которое оапределяется настройками
System.setProperty("javax.net.ssl.trustStoreType","HDImageStore");
System.setProperty("javax.net.ssl.trustStore","C:\\Java\\jcp\\trust");
System.setProperty("javax.net.ssl.trustStorePassword","password");
Или сертификат центра, до которого можно построить цепочку.
Подробнее написано в документе tls.html "Руководство программиста КриптоПро JTLS"
Offline zakkerone  
#15 Оставлено : 18 октября 2010 г. 19:15:22(UTC)
zakkerone

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

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

Iva написал:
Хранилище состоит из двух частей: хранилище контейнеров и хранилище сертификатов. Контейнер это закрытый ключ вместе со своим сертификатом или цепочкой сертификатов. Хранилище контейнеров определяется типом, например HDImageStore. Для каждого пользователя хранилище контейнеров одно. Для JTLS надо чтоб Ваш секретный ключ был доступен в хранилище определеном настройками
System.setProperty("javax.net.ssl.keyStoreType","HDImageStore");
System.setProperty("javax.net.ssl.keyStorePassword","password");
Хранилище сертификатов привязано к файлу. Их может быть сколько угодно. Для JTLS надо чтоб сертификат сервера, был доступен в хранилище, которое оапределяется настройками
System.setProperty("javax.net.ssl.trustStoreType","HDImageStore");
System.setProperty("javax.net.ssl.trustStore","C:\\Java\\jcp\\trust");
System.setProperty("javax.net.ssl.trustStorePassword","password");
Или сертификат центра, до которого можно построить цепочку.
Подробнее написано в документе tls.html "Руководство программиста КриптоПро JTLS"
большое спасибо, этот момент не был ясен нам из документации и он многое прояснил!
при клиентском подключении к серверу значит ли эта ошибка, что наш клиентский сертификат не присутствует в доверенных на сервере?
Код:

javax.net.ssl.SSLHandshakeException: Received fatal alert: CERTIFICATE_UNKNOWN
Offline Iva  
#16 Оставлено : 18 октября 2010 г. 19:41:47(UTC)
Iva

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

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

Скорее всего, но не обязательно. Эта ошибка означает, что у сервера проблема с клиентским сертификатом.
Отсутствие сертификата в доверенных допустимо. Если его нет, возможно, сервер хочет построить цепочку от Вашего сертификата до корневого центра.
Может на сервере и не собирались укладывать в доверенные Ваш сертификат, и сертификаты остальных клиентов тоже, а решили, что лучше положить один сертификат центра в довереренные. И если проблема не с Вашим сертификатом, а с сертификатом Вашего центра, то будет та же ошибка. Может Вы выпускали сертификат на другом центре. Может сертификат центра устарел. Может наоборот, сертификат центра сменился на новый, Ваш подписан новым, а они на сервере еще не сменили.
Обращайтесь на сервер. Пусть смотрят протокол, у них должны быть подробности.
Offline zakkerone  
#17 Оставлено : 18 октября 2010 г. 19:45:30(UTC)
zakkerone

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

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

Iva написал:
Скорее всего, но не обязательно. Эта ошибка означает, что у сервера проблема с клиентским сертификатом.
Отсутствие сертификата в доверенных допустимо. Если его нет, возможно, сервер хочет построить цепочку от Вашего сертификата до корневого центра.
Может на сервере и не собирались укладывать в доверенные Ваш сертификат, и сертификаты остальных клиентов тоже, а решили, что лучше положить один сертификат центра в довереренные. И если проблема не с Вашим сертификатом, а с сертификатом Вашего центра, то будет та же ошибка. Может Вы выпускали сертификат на другом центре. Может сертификат центра устарел. Может наоборот, сертификат центра сменился на новый, Ваш подписан новым, а они на сервере еще не сменили.
Обращайтесь на сервер. Пусть смотрят протокол, у них должны быть подробности.
Большое спасибо за адекватные ответы!
Offline Михаил_Dia  
#18 Оставлено : 14 мая 2011 г. 0:07:43(UTC)
Михаил_Dia

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

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

Добрый день. Возникла следующая ошибка:

Код:
--------
13.05.2011 19:44:19 ru.CryptoPro.JCP.pref.JCPPref getInt
CONFIG: User Preference Node: /ru/CryptoPro/ssl.Session_cache_size_default=20
13.05.2011 19:44:19 ru.CryptoPro.JCP.pref.JCPPref getInt
CONFIG: User Preference Node: /ru/CryptoPro/ssl.Session_time_default=24
13.05.2011 19:44:19 ru.CryptoPro.JCP.pref.JCPPref getInt
CONFIG: User Preference Node: /ru/CryptoPro/ssl.Session_cache_size_default=20
13.05.2011 19:44:19 ru.CryptoPro.JCP.pref.JCPPref getInt
CONFIG: User Preference Node: /ru/CryptoPro/ssl.Session_time_default=24
instantiated an instance of class ru.CryptoPro.ssl.SSLSocketFactoryImpl
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% No cached client session
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: Set null SessionId
13.05.2011 19:44:19 ru.CryptoPro.ssl.L m
FINE: %% ClientHello, TLSv1; Cipher Suites: [TLS_CIPHER_2001, TLS_CIPHER_94, SSL3_CK_GVO_KB2]; Compression Methods: 0
13.05.2011 19:44:19 ru.CryptoPro.ssl.ac < init>
FINE: ServerHello sessionId:{}
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% ServerHello, TLSv1; Cipher Suite: TLS_CIPHER_2001; Compression Method: 0
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% New session TLS_CIPHER_2001
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% Certificate message:
------
  Subject: CN=www.testgate.blizko.net, O="Sviaz-Bank ", L=Moscow, C=RU, EMAILADDRESS=support@blizko.biz
  Valid from Thu Mar 03 16:00:31 MSK 2011 until Sat Mar 03 16:10:31 MSK 2012
------
  Subject: CN=Sviaz-Bank Certification Authority, O=Sviaz-Bank, L=Moscow, C=RU, EMAILADDRESS=security@sviaz-bank.ru
  Valid from Thu Mar 11 11:05:33 MSK 2010 until Thu Mar 10 11:13:43 MSK 2016
------

13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% CertificateRequest
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% ServerHelloDone (empty)
13.05.2011 19:44:19 ru.CryptoPro.ssl.d a
FINE: %% getting aliases for Client
13.05.2011 19:44:19 ru.CryptoPro.ssl.d a
WARNING: %% No alias is match
13.05.2011 19:44:19 ru.CryptoPro.ssl.a a
FINE: %% Certificate message:
------
13.05.2011 19:44:20 ru.CryptoPro.ssl.a a
FINE: %% ClientKeyExchange...
13.05.2011 19:44:20 ru.CryptoPro.ssl.L a
FINE: ChangeCipherSpec %% Finished.


В итоге получаю:
Код:
fatal alert: HANDSHAKE_FAILURE



Использую JCP и JTLS 1.0.49.
Хранилища добавляю так:

Код:
System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStoreAlias", "keystore");
System.setProperty("javax.net.ssl.keyStorePassword", StorePassword);
		
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStore", TrustStorePath);
System.setProperty("javax.net.ssl.trustStorePassword", Password);


В хранилище доверенных сертификатов, импортировал цепочку сертификатов.
Что означает эта ошибка? Это со стороны клиента проблема с сертификатом? Как явно сослаться на альяс сертификата клиента в хранилище?
Код:

Отредактировано пользователем 14 мая 2011 г. 0:10:14(UTC)  | Причина: Не указана

Offline Iva  
#19 Оставлено : 16 мая 2011 г. 19:27:31(UTC)
Iva

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

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

Код:
fatal alert: HANDSHAKE_FAILURE

означает проблему на другой стороне, в Вашем случае на клиенте. Скорее всего, клиент не видит сертификата сервера. Какая программа используется на стороне клиента?
Offline miser  
#20 Оставлено : 17 мая 2011 г. 2:15:16(UTC)
miser

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

Группы: Участники
Зарегистрирован: 14.03.2011(UTC)
Сообщений: 153
Мужчина
Откуда: Санкт-Петербург

Сказал «Спасибо»: 1 раз
Поблагодарили: 7 раз в 5 постах
Михаил_Dia написал:
Добрый день. Возникла следующая ошибка:

Код:
--------
13.05.2011 19:44:19 ru.CryptoPro.ssl.d a
FINE: %% getting aliases for Client
13.05.2011 19:44:19 ru.CryptoPro.ssl.d a
WARNING: %% No alias is match


Вставьте в хранилище доверенных сертификатов сертификат сервера с алиасом указаннымв CN - www.testgate.blizko.net
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.