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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sevahx  
#1 Оставлено : 7 сентября 2016 г. 14:06:21(UTC)
sevahx

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

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

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

Я использую Crypto Pro CSP в связке с Trusted Java и в программе на Java пытаюсь установить https соединение с сервисами ГИС ЖКХ. Есть продуктивный и тестовый сервисы, и есть выданный нам сертификат для установки https соединения с продуктивным сервисом. С тестовыми сервисами https соединение устанавливается без проблем, но когда пытаюсь установить соединение с продуктивный сервисом, используя те же сертификаты то получаю ошибку Invalid Peer Certificate. Помогите пожалуйста разобраться в чем проблема. О чем именно может говорить ошибка "Invalid Peer Certificate", это значит что наша сторона не доверяет сертификату от сервиса?

Также мы попытались подписать нашим сертификатом произвольный файл(подпись в формате XAdES-BES), а затем проверить подпись на валидность. И при проверке подписи выходит ошибка: Certificate has unsupported critical extension, хотя все нужные сертификаты в Доверенных корневых центрах сертификации лежат и цепочка к нашему сертификату строится без ошибок.

Возможно ли использовать JTLS для установки аналогичного https соединения?

Привожу простой код на java с ошибкой:

Код:
public static void main(String[] args) {
Security.setProperty("ssl.SocketFactory.provider", "com.digt.trusted.jsse.provider.DigtSocketFactory");
System.setProperty("com.digt.trusted.jsse.certFile", "Certificate.cer");
System.setProperty("com.digt.trusted.jsse.keyPasswd", "123");

System.setProperty("javax.net.debug", "all");
args = new String[]{"api.dom.gosuslugi.ru","443"}; //продуктив
// args = new String[]{"217.107.108.156","10081"}; //тестовый

try {
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(args[0], Integer.parseInt(args[1]));

InputStream in = sslsocket.getInputStream(); //Ошибка здесь
OutputStream out = sslsocket.getOutputStream();

// Write a test byte to get a reaction :)
out.write(1);

while (in.available() > 0) {
System.out.print(in.read());
}
System.out.println("Successfully connected");

} catch (Exception exception) {
exception.printStackTrace();
}
}


Ошибка
Код:
java.io.IOException: Invalid peer certificate
at com.digt.trusted.jsse.provider.DigtSSLSocket.startHandshake(Unknown Source)
at com.digt.trusted.jsse.provider.DigtSSLSocket.getInputStream(Unknown Source)
at com.tehnologia.gisjkh.SSLPoke.main(SSLPoke.java:25)
Offline Максим Коллегин  
#2 Оставлено : 7 сентября 2016 г. 20:41:18(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Задайте этот вопрос компании Digt.
JTLS использовать возможно.
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.