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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline MIkhailF  
#1 Оставлено : 20 апреля 2023 г. 10:59:19(UTC)
MIkhailF

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

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

Какие есть тестовые страницы для тестирования TLS? Как ими пользоваться при доступе из java кода
Offline Евгений Афанасьев  
#2 Оставлено : 21 апреля 2023 г. 12:29:57(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,963
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.

Автор: MIkhailF Перейти к цитате
Какие есть тестовые страницы для тестирования TLS? Как ими пользоваться при доступе из java кода

Тестовые страницы есть тут: https://cryptopro.ru/products/csp/tc26tls
Примеры для создания TLS подключения есть в samples-sources.jar в пакете JTLS_samples, и в документации к JTLS в папке Doc дистрибутива JCP или JCSP.

Offline MIkhailF  
#3 Оставлено : 21 апреля 2023 г. 14:14:21(UTC)
MIkhailF

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

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

Прошу прощения, можно разжевать как для совсем тупых. Все эти ссылки - http. Нужно потом клацать по кнопочкам слева? А как это сделать из java? Скопировать ссылки с этих кнопочек?
Доку сейчас буду читать спасибо
Offline Евгений Афанасьев  
#4 Оставлено : 21 апреля 2023 г. 16:19:45(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,963
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Коротко об этом не рассказать, нужно смотреть примеры и документацию. Обычно url передается в особым образом настроенный http-клиент: apache, okhttp, HttpsUrlConnection и т.п.
Offline MIkhailF  
#5 Оставлено : 21 апреля 2023 г. 16:26:19(UTC)
MIkhailF

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

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

О том и речь. Я пытаюсь скормить в HttpsUrlConnection вот этот url: http://tlsgost-256auth.cryptopro.ru/ :
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

В итоге я получаю совершенно логичный эксепшен, потому что невозможно привести HttpUrlConnection, полученный из вызова openConnection(), в HttpsUrlConnection.
Потому я и уточняю, какие и где надо брать урлы тестовых страниц.Вот мой код полностью:

Security.setProperty("ssl.SocketFactory.provider", "ru.CryptoPro.ssl.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider", "ru.CryptoPro.ssl.SSLServerSocketFactoryImpl");
Security.setProperty("ssl.KeyManagerFactory.algorithm", "GostX509");
Security.setProperty("ssl.TrustManagerFactory.algorithm", "GostX509");

// Отключение проверки цепочек сертификатов
String cipherSuites2 = "TLS_CIPHER_2012,TLS_CIPHER_2001";
System.setProperty("https.cipherSuites",cipherSuites2);
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2,SSLv3");
System.setProperty("com.sun.security.enableCRLDP", "false");
System.setProperty("com.ibm.security.enableCRLDP", "false");
/*
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
*/
System.setProperty("tls_prohibit_disabled_validation", "false");
System.setProperty("javax.net.ssl.trustStore",trustStorePath);
System.setProperty("javax.net.ssl.trustStorePassword",trustStorePassword);

// Клиентский сертификат
KeyStore ks = KeyStore.getInstance("HDImageStore", "JCP");
ks.load(new FileInputStream(keyStorePath), keyStorePassword.toCharArray());
// ks.load(null,null);
// Корневые сертификаты УЦ
KeyStore kst = KeyStore.getInstance("HDImageStore", "JCP");
kst.load(new FileInputStream(trustStorePath), trustStorePassword.toCharArray());

// Менеджер хранилища.
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
tmf.init(kst);

KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
kmf.init(ks, keyStorePassword.toCharArray());

//SSL Контекст
// SSLContext sc = TLSContext.initClientSSL(null,trustStorePath, trustStorePassword, null);
// SSLContext sc = getSSLContext(kmf.getKeyManagers(),tmf.getTrustManagers(),cipherSuites2.split(","),contextName);
SSLContext sc = getSSLContext(kmf.getKeyManagers(),tmf.getTrustManagers(),cipherSuites2.split(","),trustStorePath,trustStorePassword);
sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), SecureRandom.getInstance("CPRandom", "JCP"));
HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE;
// HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
// HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
HttpClient httpClient = null;
URL url = new URL(baseUri + uri);
InputStream is;
try {

HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setConnectTimeout(10000);
con.setSSLSocketFactory(sc.getSocketFactory());
con.setHostnameVerifier(hostnameVerifier);
CookieHandler.setDefault(new CookieManager());
con.setSSLSocketFactory(con.getSSLSocketFactory());
con.connect();
is = con.getInputStream();
System.out.println("Connected: " + con);

} catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Ошибка соединения",ex);
}
Заранее спасибо за ответ
Offline Евгений Афанасьев  
#6 Оставлено : 21 апреля 2023 г. 16:48:06(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,963
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Укажите протокол https вместо http.
Offline MIkhailF  
#7 Оставлено : 21 апреля 2023 г. 16:55:55(UTC)
MIkhailF

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

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

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