Автор: Санчир Момолдаев 
Добрый день.
должно быть 2 SSLContext, один гостовый, другой стоковый.
затем в клиента уже set-ать нужный
 Добрый день,
А у вас случаем нет примеров кода, как такое можно реализовать?
Тема вновь стала для меня актуальной, и мне никак не удается сверстать правильный контекст, который позволял бы взаимодействовать с использованием TLS, но без ГОСТ алгоритма.
Я инициализирую контекст:
      System.setProperty("com.sun.security.enableCRLDP", "true");
      System.setProperty("com.sun.security.enableAIAcaIssuers", "true");   
      KeyStore key_store = KeyStore.getInstance("HDImageStore", "JCP");      
      key_store.load(null, null);
      String algorithm = KeyManagerFactory.getDefaultAlgorithm();      
      KeyManagerFactory k_factory = KeyManagerFactory.getInstance(algorithm);     
      k_factory.init(key_store, password.toCharArray());
      KeyStore trust_store = KeyStore.getInstance("JKS");
      InputStream stream = new FileInputStream("/etc/ssl/certs/java/cacerts");      
      trust_store.load(stream, "changeit");
      String algorithm = TrustManagerFactory.getDefaultAlgorithm();     
      TrustManagerFactory t_factory = TrustManagerFactory.getInstance(algorithm);  
      t_factory.init(trust_store);
      SSLContext ssl_context = SSLContext.getInstance("TLSv1.2");
      ssl_context.init(k_factory.getKeyManagers(), t_factory.getTrustManagers(), null);
      SSLConnectionSocketFactory socket_factory = new SSLConnectionSocketFactory(ssl_context);
      CloseableHttpClient http_client = HttpClients.custom().setSSLSocketFactory(socket_factory).build();
Затем любой HTTPS запрос выбрасывает у меня исключение вида:
FINEST: 1001 сохранение отчетов о загрузке из ЕИС 268f2861-2075-422f-ac74-cfc44928be48; Ошибка! javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1903)
	at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1886)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1402)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
	at okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:355)
	at okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:210)
	at okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:78)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:280)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:101)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:85)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:74)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:208)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:530)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
		... 23 more
	Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
		at ru.CryptoPro.ssl.pc_4.cl_2.<init>(Unknown Source)
		at ru.CryptoPro.ssl.pc_4.cl_4.a(Unknown Source)
		at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
		at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
		at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
		at ru.CryptoPro.ssl.cl_121.checkServerTrusted(Unknown Source)
		at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
		at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
		at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
		at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
		at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
		at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
		at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
		... 18 more
	Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
		at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
		at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
		at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
		... 31 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
	at ru.CryptoPro.ssl.pc_4.cl_2.<init>(Unknown Source)
	at ru.CryptoPro.ssl.pc_4.cl_4.a(Unknown Source)
	at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
	at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
	at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
	at ru.CryptoPro.ssl.cl_121.checkServerTrusted(Unknown Source)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
	... 18 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
	at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
	at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
	at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
	... 31 more
Буду благодарен за любые подсказки.