Проблема безопасности Java при загрузке подключаемых модулей в Ubuntu - PullRequest
0 голосов
/ 26 июня 2018

Наша сборка Gradle использует плагин SVN tools и работает без проблем в Windows. Часть скрипта сборки, использующая проблему сборки, выглядит следующим образом:

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "at.bxm.gradleplugins:gradle-svntools-plugin:2.2.1"
    }
}
apply plugin: "at.bxm.svntools"

Я пытался запустить ту же сборку на Ubuntu Ubuntu 18.04 LTS, но я получил это сообщение об ошибке:

Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve at.bxm.gradleplugins:gradle-svntools-plugin:2.2.1.
     Required by:
         project :
      > Could not resolve at.bxm.gradleplugins:gradle-svntools-plugin:2.2.1.
         > Could not get resource 'https://plugins.gradle.org/m2/at/bxm/gradleplugins/gradle-svntools-plugin/2.2.1/gradle-svntools-plugin-2.2.1.pom'.
            > Could not GET 'https://plugins.gradle.org/m2/at/bxm/gradleplugins/gradle-svntools-plugin/2.2.1/gradle-svntools-plugin-2.2.1.pom'.
               > java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Я использую одну и ту же версию Java и Gradle на обеих машинах. StackTrace показывает, что существует проблема с SSL-сертификатами. Что я должен сделать, чтобы иметь возможность использовать хранилище подключаемых модулей в моем скрипте?

Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://plugins.gradle.org/m2/at/bxm/gradleplugins/gradle-svntools-plugin/2.2.1/gradle-svntools-plugin-2.2.1.pom'.
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:96)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawGet(HttpClientHelper.java:80)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performGet(HttpClientHelper.java:84)
        at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:43)
        at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:29)
        at org.gradle.internal.resource.transfer.DefaultExternalResourceConnector.openResource(DefaultExternalResourceConnector.java:56)
        at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor.openResource(ProgressLoggingExternalResourceAccessor.java:37)
        at org.gradle.internal.resource.transfer.AccessorBackedExternalResource.withContentIfPresent(AccessorBackedExternalResource.java:130)
        at org.gradle.internal.resource.BuildOperationFiringExternalResourceDecorator$11.call(BuildOperationFiringExternalResourceDecorator.java:237)
        at org.gradle.internal.resource.BuildOperationFiringExternalResourceDecorator$11.call(BuildOperationFiringExternalResourceDecorator.java:229)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:331)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:321)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:107)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.internal.resource.BuildOperationFiringExternalResourceDecorator.withContentIfPresent(BuildOperationFiringExternalResourceDecorator.java:229)
        at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.copyToCache(DefaultCacheAwareExternalResourceAccessor.java:199)
        ... 153 more
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:148)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:126)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead(HttpClientHelper.java:103)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:94)
        ... 169 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        ... 184 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        ... 184 more

1 Ответ

0 голосов
/ 27 июня 2018

Проблема была в cacerts. Недостаточно удалить OpenJDK и установить Oracle JDK8. Вам следует обновить / etc / ssl / certs / java / cacerts (удалить cacerts и скопировать новое из {ORACLE_JDK_HOME} / jre / lib / security / cacerts). Первый раз, когда я сделал это, я бегу

update-ca-certificates --fresh

после, но потом это не сработало, поэтому в следующий раз я снова скопировал сертификаты без запуска update-ca-сертификаты --fresh, и это сработало

...