Я пытаюсь использовать Restore ClientResource для подключения с использованием HTTPS к серверу, использующему самозаверяющий сертификат. Я эта работа с помощью автономного приложения, которое просто использует ClientResource и мой обычай SSLContextFactory добавлен как атрибут и код для его можно увидеть здесь:Как использовать пользовательский SSLContextFactory в приложении Restocket, запущенном на Jetty?
https://github.com/pixelatedpete/selfsignedexample
Когда я использую одни и те же классы (DynamicTrustManager и SelfSignSslSocketFactory) в более сложном приложении Restlet (с тем же самым pom, что и выше), который использует Restlet для предоставления API REST, обслуживаемого Jetty, мой пользовательский SSLContextFactory больше не используется.
Я добавляю его в контекст ClientResource, как указано выше, но я никогда не вижу ни одного сообщения журнала, предлагающего, чтобы SSLContextFactory, предоставленный ClientResource, передавался в базовый httpclient.
Если я перезапись с использованием HttpClient напрямую, а не ClientResource:
HttpPost post = new HttpPost(cr.getReference().toString());
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(...);
DynamicTrustManager tm = new DynamicTrustManager(..., cert);
SelfSignTrustSslContextFactory scf = (SelfSignTrustSslContextFactory)
CloseableHttpClient httpclient = HttpClients.custom().setSslcontext(scf.createSslContext()).build();
CloseableHttpResponse response = httpclient.execute(post);
вещи работать снова.
Это что-то еще кто-то встретил и может указать, что я подозреваю, это очень очевидная вещь, которую я не хватает?
Nb. Попробовал еще раз, используя Tomcat и получить тот же вопрос
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
пытались также инъекции SslContextFactory (мы используем Guice здесь), но это не помогло.