Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
На сервере требуется аутентификация клиента? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.08.2017(UTC) Сообщений: 15 ![Казахстан Казахстан](/forum2/Content/images/flags/KZ.png) Откуда: Алматы Сказал(а) «Спасибо»: 7 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) На сервере требуется аутентификация клиента? да стоит двухстороннея аутентификация
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Тогда в sslCtx.init(null, tmf.getTrustManagers(), null); надо передать и KeyManagerFactory с KeyStore. См. руководство разработчика JTLS: Код:
KeyStore trustStore = KeyStore.getInstance(JCP.CERT_STORE_NAME);
trustStore.load(new FileInputStream(“path_to_trust_store”), “trust_store_password”.toCharArray()); // хранилище корневых сертификатов
// Если контекст для сервера или для клиента с аутентификацией
if (isServer || clientNeedsAuth) {
KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
keyStore.load(null, null);
kmf.init(keyStore, “key_store_password”.toCharArray()); // Пароль к контейнеру
} // if
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
tmf.init(trustStore);
SSLContext sslCtx = SSLContext.getInstance("GostTLS"); // Защищенный контекст
sslCtx.init(kmf != null ? kmf.getKeyManagers() : null, tmf.getTrustManagers(), null);
Если вы используете JCSP, то, соответственно, должен быть указан нужный тип и провайдер keyStore. Отредактировано пользователем 30 августа 2017 г. 14:06:18(UTC)
| Причина: Не указана |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
Abter оставлено 31.08.2017(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.08.2017(UTC) Сообщений: 15 ![Казахстан Казахстан](/forum2/Content/images/flags/KZ.png) Откуда: Алматы Сказал(а) «Спасибо»: 7 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Тогда в sslCtx.init(null, tmf.getTrustManagers(), null); надо передать и KeyManagerFactory с KeyStore. См. руководство разработчика JTLS: Код:
KeyStore trustStore = KeyStore.getInstance(JCP.CERT_STORE_NAME);
trustStore.load(new FileInputStream(“path_to_trust_store”), “trust_store_password”.toCharArray()); // хранилище корневых сертификатов
// Если контекст для сервера или для клиента с аутентификацией
if (isServer || clientNeedsAuth) {
KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
keyStore.load(null, null);
kmf.init(keyStore, “key_store_password”.toCharArray()); // Пароль к контейнеру
} // if
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
tmf.init(trustStore);
SSLContext sslCtx = SSLContext.getInstance("GostTLS"); // Защищенный контекст
sslCtx.init(kmf != null ? kmf.getKeyManagers() : null, tmf.getTrustManagers(), null);
Если вы используете JCSP, то, соответственно, должен быть указан нужный тип и провайдер keyStore. ок, добавил keyManagers, ошибка та же: WARNING: main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure лог приложил. ![](/forum2/Themes/soclean/icon_file.gif) log_31_08.txt (55kb) загружен 4 раз(а).вот код java: ![](/forum2/Themes/soclean/icon_file.gif) java.txt (3kb) загружен 9 раз(а).Я думаю что у меня хранилище сертификатов не правильно сделаны я их через консоль сам создавал, а мне выдали папку с ключами и клиентским сертификатом и корневой сертификат. Скажите пож-та как правильно я их должен положить/создать хранилище через CSP, я так понимаю KeyStore.getInstance(JCP.HD_STORE_NAME) по паролю должен сам обратиться к папке но я не делал папку с таким паролем. в заранее Спасибо! Отредактировано пользователем 31 августа 2017 г. 8:17:46(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Задание хранилища доверенных сертификатов с помощью System.setProperty лишнее - его достаточно передать в SSLContext. keystore - Это хранилище доверенных сертификатов? Хранилище доверенных сертификатов формата CerStore можно создать в панели JCP и положить в него корневой сертификат. Ключевой контейнер (папка *.000) должна быть доступна JCP и лежать в его папке контейнеров: C:\Users\<user>\AppData\Crypto Pro или /var/opt/cprocsp/keys/<user>. Пароль на контейнер должен быть password (из вашего примера), раз он один и тот же для хранилища доверенных сертификатов и контейнера. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.08.2017(UTC) Сообщений: 15 ![Казахстан Казахстан](/forum2/Content/images/flags/KZ.png) Откуда: Алматы Сказал(а) «Спасибо»: 7 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Задание хранилища доверенных сертификатов с помощью System.setProperty лишнее - его достаточно передать в SSLContext. keystore - Это хранилище доверенных сертификатов? Хранилище доверенных сертификатов формата CerStore можно создать в панели JCP и положить в него корневой сертификат. Ключевой контейнер (папка *.000) должна быть доступна JCP и лежать в его папке контейнеров: C:\Users\<user>\AppData\Crypto Pro или /var/opt/cprocsp/keys/<user>. Пароль на контейнер должен быть password (из вашего примера), раз он один и тот же для хранилища доверенных сертификатов и контейнера. 1) System.setProperty убрал 2) keyStore это не хранилище доверенных сертификатов, это Ключевой контейнер который берет из HD_STORE_NAME, хранилище доверенных сертификатов это trustStore: KeyStore trustStore = KeyStore.getInstance(JCP.CERT_STORE_NAME, JCP.PROVIDER_NAME); 3) можно пож-та скинуть ссылку на документацию как в JCP или в CSP создавать хранилище доверенных сертификатов формата CerStore? там должен быть только корневой сертификат (root.cer) или клиентский (client.cer) тоже? 4) можно пож-та скинуть ссылку на документацию как создавать Ключевой контейнер и как понять папка*.000? у меня обычный каталог с наличием файлов .cer и файлов .key
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Автор: Abter ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) 2) keyStore это не хранилище доверенных сертификатов, это Ключевой контейнер который берет из HD_STORE_NAME, хранилище доверенных сертификатов это trustStore: KeyStore trustStore = KeyStore.getInstance(JCP.CERT_STORE_NAME, JCP.PROVIDER_NAME); 3) можно пож-та скинуть ссылку на документацию как в JCP или в CSP создавать хранилище доверенных сертификатов формата CerStore? там должен быть только корневой сертификат (root.cer) или клиентский (client.cer) тоже? 4) можно пож-та скинуть ссылку на документацию как создавать Ключевой контейнер и как понять папка*.000? у меня обычный каталог с наличием файлов .cer и файлов .key
2. переменная key store. 3-4. - см. руководства программиста и руководство программиста JTLS (дистрибутив, папка Docs/ЖТЯИ-). Хранилище доверенных сертификатов формата CerStore с паролем можно создать в панели JCP на закладке "Хранилища ключей и сертификатов" и положить в него корневой сертификат. Ключевой контейнер (папка *.000) должен быть доступен JCP и лежать в его папке контейнеров: C:\Users\<user>\AppData\Crypto Pro (/var/opt/cprocsp/keys/<user>). У него также должен быть пароль. Ваш каталог и есть контейнер. Поместите его в C:\Users\<user>\AppData\Crypto Pro (/var/opt/cprocsp/keys/<user>), тогда он будет доступен в панели управления JCP. |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
Abter оставлено 31.08.2017(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.08.2017(UTC) Сообщений: 15 ![Казахстан Казахстан](/forum2/Content/images/flags/KZ.png) Откуда: Алматы Сказал(а) «Спасибо»: 7 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Автор: Abter ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) 2) keyStore это не хранилище доверенных сертификатов, это Ключевой контейнер который берет из HD_STORE_NAME, хранилище доверенных сертификатов это trustStore: KeyStore trustStore = KeyStore.getInstance(JCP.CERT_STORE_NAME, JCP.PROVIDER_NAME); 3) можно пож-та скинуть ссылку на документацию как в JCP или в CSP создавать хранилище доверенных сертификатов формата CerStore? там должен быть только корневой сертификат (root.cer) или клиентский (client.cer) тоже? 4) можно пож-та скинуть ссылку на документацию как создавать Ключевой контейнер и как понять папка*.000? у меня обычный каталог с наличием файлов .cer и файлов .key
2. переменная key store. 3-4. - см. руководства программиста и руководство программиста JTLS (дистрибутив, папка Docs/ЖТЯИ-). Хранилище доверенных сертификатов формата CerStore с паролем можно создать в панели JCP на закладке "Хранилища ключей и сертификатов" и положить в него корневой сертификат. Ключевой контейнер (папка *.000) должен быть доступен JCP и лежать в его папке контейнеров: C:\Users\<user>\AppData\Crypto Pro (/var/opt/cprocsp/keys/<user>). У него также должен быть пароль. Ваш каталог и есть контейнер. Поместите его в C:\Users\<user>\AppData\Crypto Pro (/var/opt/cprocsp/keys/<user>), тогда он будет доступен в панели управления JCP. спасибо многое прояснилось, последний вопрос (надеюсь :)) вы пишите у ключевого контейнера должен быть пароль? а какой пароль? кто и как его задает? на счтет C:\Users\<user>\AppData\Crypto Pro проверил такой каталог в нем есть каталог ****.000 он пустой я его не создавал ранее, дата создания сегодня видимо при запуске тестовых как то создался, туда положил все файлы формата .key, запустил еще раз приложение получил такую ошибку: Message: java.lang.ClassCastException: ru.CryptoPro.JCP.Key.GostExchPrivateKey cannot be cast to ru.CryptoPro.JCSP.Key.GostPrivateKey вот лог: ![](/forum2/Themes/soclean/icon_file.gif) log_31_08.txt (93kb) загружен 3 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Если вы используете JCSP, то, соответственно, должен быть указан нужный тип и провайдер keyStore. Судя по логу, вы используете JCSP. Видимо, где-то все-таки применяется JCP вместо JCSP (например, при чтении KeyStore). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.08.2017(UTC) Сообщений: 15 ![Казахстан Казахстан](/forum2/Content/images/flags/KZ.png) Откуда: Алматы Сказал(а) «Спасибо»: 7 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Если вы используете JCSP, то, соответственно, должен быть указан нужный тип и провайдер keyStore. Судя по логу, вы используете JCSP. Видимо, где-то все-таки применяется JCP вместо JCSP (например, при чтении KeyStore). Вы можете пож-та подсказать как правильно создавать ключевой контейнер в папке Crypto Pro? у меня есть подозрение что текущая папка это не то, ведь я ее сам не создавал соответственно и пароль не задавал, сейчас вызываю с пустым паролем но не уверен что это правильно
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close