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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline long76  
#11 Оставлено : 5 августа 2021 г. 9:32:43(UTC)
long76

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

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

Сказал(а) «Спасибо»: 9 раз
не подскажете какой KeySpec использовать?
Offline Евгений Афанасьев  
#12 Оставлено : 5 августа 2021 г. 10:08:59(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: long76 Перейти к цитате
Автор: Евгений Афанасьев Перейти к цитате
Можете полный стек ошибки приложить?


crypto.log (70kb) загружен 2 раз(а).


1. JCP у вас JCP 2.0.41789?
2. SSLContext создается в вашем коде? Можете показать код?

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
long76 оставлено 05.08.2021(UTC)
Offline long76  
#13 Оставлено : 5 августа 2021 г. 10:24:15(UTC)
long76

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

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

Сказал(а) «Спасибо»: 9 раз
Автор: Евгений Афанасьев Перейти к цитате
Автор: long76 Перейти к цитате
Автор: Евгений Афанасьев Перейти к цитате
Можете полный стек ошибки приложить?


crypto.log (70kb) загружен 2 раз(а).


1. JCP у вас JCP 2.0.41789?
2. SSLContext создается в вашем коде? Можете показать код?



1. да
2. да

Код:
System.setProperty("com.sun.security.enableCRLDP", "true");

KeyStore ks;
try {
    ks = KeyStore.getInstance("HDImageStore", "JCP");
} catch (KeyStoreException e) {
    LOG.log(Level.SEVERE, "Ошибка чтения KeyStore с именем 'HDImageStore'", e);
    throw new RuntimeException(e);
} catch (NoSuchProviderException e) {
    LOG.log(Level.SEVERE, "Не установлен криптопровайдер JCP", e);
    throw new RuntimeException(e);
}
try {
    ks.load(null, null);
} catch (NoSuchAlgorithmException | CertificateException e) {
    LOG.log(Level.SEVERE, "Ошибка загрузки KeyStore с именем 'HDImageStore'", e);
    throw new RuntimeException(e);
}
KeyManagerFactory kmf;
try {
    kmf = KeyManagerFactory.getInstance("GostX509", "JTLS");
} catch (NoSuchAlgorithmException e) {
    LOG.log(Level.SEVERE, "Ошибка создания фабрики KeyManagerFactory 'GostX509'", e);
    throw new RuntimeException(e);
} catch (NoSuchProviderException e) {
    LOG.log(Level.SEVERE, "Не установлен криптопровайдер JTLS", e);
    throw new RuntimeException(e);
}
try {
    kmf.init(ks, "password".toCharArray());
} catch (KeyStoreException | NoSuchAlgorithmException | UnrecoverableKeyException e) {
    LOG.log(Level.SEVERE, "Ошибка инициализации фабрики KeyManagerFactory 'GostX509'", e);
    throw new RuntimeException(e);
}
KeyStore trustedKeyStore;
try {
    trustedKeyStore = KeyStore.getInstance("JKS", "SUN");
    trustedKeyStore.load(new FileInputStream(cacertsPath), cacertsPassword.toCharArray());
} catch (Exception e) {
    LOG.log(Level.SEVERE, String.format("Ошибка загрузки cacerts. Путь %s, пароль %s", cacertsPath, cacertsPassword), e);
    throw new RuntimeException(e);
}
TrustManagerFactory tmf;
try {
    tmf = TrustManagerFactory.getInstance("GostX509", "JTLS");
    tmf.init(trustedKeyStore);
} catch (Exception e) {
    LOG.log(Level.SEVERE, "Ошибка инициализации TrustManager", e);
    throw new RuntimeException(e);
}
SSLContext sslContext;
try {
    sslContext = SSLContext.getInstance("GostTLSv1.2", "JTLS");
} catch (NoSuchAlgorithmException | NoSuchProviderException e) {
    LOG.log(Level.SEVERE, "Окружение не поддерживает алгоритм шифрования GostTLSv1.2", e);
    throw new RuntimeException(e);
}
SecureRandom secureRandom;
try {
    secureRandom = SecureRandom.getInstance("CPRandom", "JCP");
} catch (NoSuchAlgorithmException | NoSuchProviderException e) {
    LOG.log(Level.SEVERE, "Ошибка инициализации SecureRandom 'CPRandom'", e);
    throw new RuntimeException(e);
}
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), secureRandom);
Offline Евгений Афанасьев  
#14 Оставлено : 5 августа 2021 г. 13:17:10(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Код верный, но сертификаты в логе, видимо, все представлены BC. Можете включить полное (ALL) логирование для SSLLogger и JCPLogger до момента возникновения ошибки?
https://support.cryptopr...nlirovnija-kriptopro-jcp
https://support.cryptopr...lirovnija-kriptopro-jtls
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
long76 оставлено 19.08.2021(UTC)
Offline long76  
#15 Оставлено : 19 августа 2021 г. 15:37:27(UTC)
long76

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

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

Сказал(а) «Спасибо»: 9 раз
Автор: Евгений Афанасьев Перейти к цитате
Код верный, но сертификаты в логе, видимо, все представлены BC. Можете включить полное (ALL) логирование для SSLLogger и JCPLogger до момента возникновения ошибки?
https://support.cryptopr...nlirovnija-kriptopro-jcp
https://support.cryptopr...lirovnija-kriptopro-jtls


Логирование особо не помогло, проблему решили выносом функционала в jar и дергание его через Runtime.exec. Но спасибо за помощь.
Offline Евгений Афанасьев  
#16 Оставлено : 19 августа 2021 г. 17:20:21(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Если у вас имеется полный лог, приложите, пожалуйста.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.