Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Ошибка сертификата ru.CryptoPro.ssl.pc_4.cl_5: PKIX path building failed
Статус: Активный участник
Группы: Участники
Зарегистрирован: 01.08.2019(UTC) Сообщений: 43
Сказал(а) «Спасибо»: 2 раз
|
Спасибо, объясните поподробнее как: Цитата: указать ее в панели управления в настройках сервера (там есть поле для ввода с галкой - использовать CRL из файлов) это на вкладке "Настройки TLS" там поле, галка только текст "Загружать CRL из папки", только получается первые две галки обе снимают эту третью и как сделать чтоб не было проверки.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 01.08.2019(UTC) Сообщений: 43
Сказал(а) «Спасибо»: 2 раз
|
А если я отключаю проверку сертификатов выдает Код:WARNING: default context init failed:
java.security.KeyManagementException: Certificate validation is disabled but required. The check can be turned off using -Dtls_prohibit_disabled_validation=false or SetPrefs (see the programmer's guide) or TLSSettings.
Я пробовал уже, подскажите пожалуйста как правильно это отключить и дать ему проверенный crt, спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,925 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 01.08.2019(UTC) Сообщений: 43
Сказал(а) «Спасибо»: 2 раз
|
Я так отключаю: Цитата:System.setProperty("tls_prohibit_disabled_validation", "false") получаю ошибку: Цитата:Certificate validation is disabled but required. The check can be turned off using -Dtls_prohibit_disabled_validation=false or SetPrefs (see the programmer's guide) or TLSSettings Я думаю, что это говорит о том что проверка выключена? Я скачал сертификат ca-DDD195D669374970BB1750099EE28202D310FBA9.crl, положил его в папку, которую указал в строчке "Загружать CRL из папки". А как сделать что-бы пакет не пытался проверять сертификаты.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 01.08.2019(UTC) Сообщений: 43
Сказал(а) «Спасибо»: 2 раз
|
На данный момент проект выглядит так:
Код:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package testjtls1;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Security;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertPath;
import java.security.cert.CertPathBuilder;
import java.security.cert.CertPathValidator;
import java.security.cert.CertPathValidatorResult;
import java.security.cert.CertStore;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.CollectionCertStoreParameters;
import java.security.cert.PKIXBuilderParameters;
import java.security.cert.PKIXCertPathBuilderResult;
import java.security.cert.PKIXCertPathValidatorResult;
import java.security.cert.TrustAnchor;
import java.security.cert.X509CertSelector;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.prefs.Preferences;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory;
import ru.CryptoPro.Crypto.CryptoProvider;
import ru.CryptoPro.JCP.JCP;
import ru.CryptoPro.reprov.RevCheck;
import ru.CryptoPro.ssl.Provider;
//import ru.gosuslugi.dom.schema.integration.house_management_service_async.HouseManagementPortsTypeAsync;
//import ru.gosuslugi.dom.schema.integration.house_management_service_async.HouseManagementServiceAsync;
/**
*
* @author home
*/
public class TestGIS_SOAP {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new TestGIS_SOAP().start();
}
private SSLContext sc;
private byte[] buf;
// private HouseManagementPortsTypeAsync getHouseManagementPortAsync() throws DatatypeConfigurationException {
// HouseManagementPortsTypeAsync houseManagementPort = new HouseManagementServiceAsync().getHouseManagementPortAsync();
// return houseManagementPort;
// }
private void start() {
try {
//отключение проверки сертификатов trustStore
TLSSettings.setDefaultCRLLocation("C:\\Work\\Work\\certs");
TLSSettings.setDefaultEnableRevocation(true); //если поставить false, то будет java.security.KeyManagementException
TLSSettings.setDefaultCRLRevocationOffline(true);//изменение вообще не влияет
TLSSettings.setDefaultCRLRevocationOnline(false);//изменение вообще не влияет
TLSSettings.setTlsProhibitDisabledValidation(false);//изменение вообще не влияет
Security.addProvider(new JCP());
Security.addProvider(new RevCheck());
Security.addProvider(new CryptoProvider());
Security.addProvider(new Provider());
System.setProperty("com.sun.security.enableCRLDP", "true"); // для проверки по CRL DP
System.setProperty("com.sun.security.enableAIAcaIssuers", "true"); // для загрузки сертификатов по AIA из сети
System.setProperty("ru.CryptoPro.reprov.enableAIAcaIssuers", "true"); // для загрузки сертификатов по AIA из сети
KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
keyStore.load(null,null);
// keyStore.load(new FileInputStream("c:\\Work\\Work\\HDImageStore\\new_2012_256.keystore"),
// "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
kmf.init(keyStore, "1234567890".toCharArray());//Здесь доступ к контейнеру по умолчанию как я понял
KeyStore trustStore = KeyStore.getInstance("CertStore", "JCP");//У меня нет хранилища JKC,
trustStore.load(null, null); // я добавляю нужные сертификаты сам
CertificateFactory cf = CertificateFactory.getInstance("X509");
Certificate trstCert = cf.generateCertificate(new BufferedInputStream(new FileInputStream("c:\\Work\\Work\\CA-PPAK.der")));
trustStore.setCertificateEntry("certificate", trstCert);
trstCert = cf.generateCertificate(new FileInputStream("c:\\Work\\Work\\CA-PPAK1.cer"));
trustStore.setCertificateEntry("ca1", trstCert);
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
tmf.init(trustStore);
//SSL Контекст
sc = SSLContext.getInstance("GostTLS");
sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
// URL url = new URL("https://testgost2012st.cryptopro.ru/gost2st.txt");
URL url = new URL("https://api.dom.gosuslugi.ru/ext-bus-home-management-service/services/HomeManagementAsync");
// URL url = new URL("https://tlsgost-2001auth.cryptopro.ru/");
HttpsURLConnection cpm = (HttpsURLConnection) url.openConnection();
cpm.setSSLSocketFactory(sc.getSocketFactory());
cpm.setDoOutput(true);
cpm.connect();
OutputStream os = cpm.getOutputStream();
os.write(new byte[]{4, 2, 54, 33, 55});
InputStream is = cpm.getInputStream();
if (is.available() > 0) {
buf = new byte[is.available()];
is.read(buf);
}
os.close();
is.close();
cpm.disconnect();
} catch (MalformedURLException ex) {
Logger.getLogger(TestGIS_SOAP.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(TestGIS_SOAP.class.getName()).log(Level.SEVERE, null, ex);
} catch (KeyStoreException | NoSuchProviderException | NoSuchAlgorithmException | CertificateException | UnrecoverableKeyException | KeyManagementException ex) {
Logger.getLogger(TestGIS_SOAP.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Согласно инструкции ЖТЯИ.00091-02 91 02-02. Инструкция по использованию (JTLS).pdf пункта "3. Настройка параметров провайдера с помощью Preferences" настроил папку сертификатов, отключил проверку сертификатов по сети, включил оффлайн проверку сертификатов из папки. В папке "C:\\Work\\Work\\certs" все сертификаты есть. Результаты выполнения log2.txt (72kb) загружен 3 раз(а).. Если задаю TLSSettings.setDefaultEnableRevocation(false); получаю: log3.txt (41kb) загружен 3 раз(а).Изменение tls_prohibit_disabled_validation ничего не дало. Пожалуйста подскажите как правильно выключить проверку. Санчир Момолдаев: Добавил в cacerts все сертификаты которые были, положение не спасло, ошибка та-же. Всем спасибо. Отредактировано пользователем 27 августа 2019 г. 8:42:49(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,925 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
Попробуйте так: Код:
Под управлением администратора, если JCP 2.0:
<JRE>/bin/java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl/util -key tls_prohibit_disabled_validation -value false
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 01.08.2019(UTC) Сообщений: 43
Сказал(а) «Спасибо»: 2 раз
|
Выполнил это: Код:
C:\Windows\system32>"C:\Program Files\Java\jdk1.8.0_221\jre\bin\java.exe" ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl/util -key tls_prohibit_disabled_validation -value false
C:\Windows\system32>
Результат не изменился.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,925 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
java одна (jdk1.8.0_221) установлена/используется? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 01.08.2019(UTC) Сообщений: 43
Сказал(а) «Спасибо»: 2 раз
|
Это точно я несколько раз проверил, вот: Код:
C:\Work\Work\jcp_GKH\dist>"C:\Program Files\Java\jdk1.8.0_221\jre\bin\java.exe" ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl/util -key tls_prohibit_disabled_validation -value false
C:\Work\Work\jcp_GKH\dist>"C:\Program Files\Java\jdk1.8.0_221\jre\bin\java.exe" -jar jcp_GKH.jar
рту 27, 2019 4:04:25 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0.40424
рту 27, 2019 4:04:25 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
рту 27, 2019 4:04:26 PM ru.CryptoPro.ssl.cl_38 <init>
INFO: %% adding as private keys %%
рту 27, 2019 4:04:26 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl init.
рту 27, 2019 4:04:26 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: trigger seeding of SecureRandom
рту 27, 2019 4:04:27 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: done seeding SecureRandom
рту 27, 2019 4:04:27 PM jcp_gkh.Jcp_GKH start
SEVERE: null
java.security.KeyManagementException: Certificate validation is disabled but required. The check can be turned off using -Dtls_prohibit_disabled_validation=false or SetPrefs (see the programmer's guid
e) or TLSSettings.
at ru.CryptoPro.ssl.SSLContextImpl.engineInit(Unknown Source)
at javax.net.ssl.SSLContext.init(SSLContext.java:282)
at jcp_gkh.Jcp_GKH.start(Jcp_GKH.java:90)
at jcp_gkh.Jcp_GKH.main(Jcp_GKH.java:46)
C:\Work\Work\jcp_GKH\dist>
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,925 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
Если так запустить "C:\Program Files\Java\jdk1.8.0_221\jre\bin\java.exe" -Dtls_prohibit_disabled_validation=false -jar jcp_GKH.jar что-нибудь изменится? |
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Ошибка сертификата ru.CryptoPro.ssl.pc_4.cl_5: PKIX path building failed
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close