(eclipse) Тест Junit не использует сертификат cacert из аргументов виртуальной машины - не удается найти действительный путь сертификации для запрошенной цели - PullRequest
0 голосов
/ 09 июля 2019

Итак, у меня есть приложение весенней загрузки, которое выполняет API-вызовы на внешний URL-адрес через прокси-сервер моей компании, у нас есть файл хранилища сертификатов, который позволяет нам получить доступ к этому сайту. В затмении приложения у меня есть «аргументы VM»Запустите настройки "как

-Dhttps.proxyHost=http.proxy.mycompany.com -Dhttps.proxyPort=8001 -Djavax.net.ssl.trustStore=cacerts.jks 

с файлом cacerts в корне моего проекта.Это отлично работает в весеннем приложении, но в моих тестах JUnit, которые имеют те же аргументы VM, я получаю ошибку

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

1 Ответ

0 голосов
/ 10 июля 2019

Хранилище доверия бесполезно, если вы не предоставите пароль (-Djavax.net.ssl.trustStorePassword=the-password) и ваши настройки прокси не должны влиять на то, доверяет ли ваша JVM сертификат. Лучше всего обновить ваш JRE lib/security/cacerts примерно так:

keytool -import \
  -keystore /usr/lib/jvm/jre-1.8.0/lib/security/cacerts
  -file /tmp/some-certificate.cer \ 
  -alias some-alias

и убедитесь, что Eclipse и JUnit используют эту JRE.

...