Сбой сборки Gradle с «невозможно найти действительный путь сертификации к запрошенной цели» - PullRequest
0 голосов
/ 31 октября 2019

У меня есть приложение Java, которое разработано и построено с gradle.

У меня проблема при запуске gradle build, сборка завершается со следующей ошибкой:

* What went wrong:
Could not determine the dependencies of task ':jar'.
> Could not resolve all files for configuration ':compile'.
   > Could not download client-java-api.jar (io.kubernetes:client-java-api:5.0.0)
      > Could not get resource 'https://jcenter.bintray.com/io/kubernetes/client-java-api/5.0.0/client-java-api-5.0.0.jar'.
         > Could not GET 'https://jcenter.bintray.com/io/kubernetes/client-java-api/5.0.0/client-java-api-5.0.0.jar'.
            > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Выдается ошибка для всех зависимостей.

Я гарантировал, что импортировал сертификат jcenter в cacerts:

keytool -import -alias "ADD_CERTIFICATE_ALIAS" -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -file "PATH\TO\CERTIFICATE\CERTIFICATE.cer"

Я также проверил, что сертификат был импортирован туда (выводиз keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts):

...
Certificate fingerprint (SHA1): B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
jcenter, Oct 30, 2019, trustedCertEntry, 
...

Я также изменил скрипт gradle в C:\Gradle\bin\gradle.bat и добавил %GRADLE_OPTS% / %JAVA_OPTS% trustStore в качестве аргумента, поэтому теперь команда gradle build выглядит следующим образом:

"C:\Program Files\Java\jdk1.8.0_212/bin/java.exe" -Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk1.8.0_212\jre\lib\security\cacerts" "-Dorg.gradle.appname=gradle" -classpath "C:\Gradle\bin\..\lib\gradle-launcher-4.2.1.jar" org.gradle.launcher.GradleMain bui ld

Как FYI, эта проблема не возникает, когда я не за VPN (ZScaler).

ОБНОВЛЕНИЕ Iвыполнил следующую команду:

openssl s_client -showcerts -connect jcenter.bintray.com:443

И он показал следующую строку, которая, вероятно, связана:

verify error:num=20:unable to get local issuer certificate

Любые другие идеи, как яможно решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...