TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • Ambari

  • Ambari-infra

    • org.apache.commons.io does not exist
    • maven-compiler-plugin:3.3:compile
    • java.security.InvalidAlgorithmParameterException
      • javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException
        • 问题描述
        • 解决排查思路
        • 最终解决办法
        • 步骤 1:下载并安装 Oracle JDK
        • 步骤 2:验证 JDK 配置
        • 步骤 3:重新构建项目
        • 错误日志分析
        • 常见解决方案
  • Ambari-metrics

  • 报错解决-Ambari
  • Ambari-infra
JaneTTR
2023-04-06
目录

java.security.InvalidAlgorithmParameterException

# javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException

# 问题描述

在使用 Maven 构建 Ambari 项目时,遇到了以下错误:

[get] Error getting http://archive.apache.org/dist/lucene/solr/8.11.2/solr-8.11.2.tgz to /opt/modules/ambari-infra/ambari-infra-assembly/target/solr.tgz
[ant] Exiting /opt/modules/ambari-infra/ambari-infra-assembly/build.xml.
1
2

这表明下载 solr-8.11.2.tgz 文件时出现了问题。错误日志中的 SSL 异常提示:

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
1

该错误通常出现在网络请求过程中 SSL 握手失败,原因往往是缺少或配置不当的信任证书(Trust Anchors)。解决此问题需要从以下几个方面进行排查和修复。

完整的报错日志如下:

package:
      [get] Getting: http://archive.apache.org/dist/lucene/solr/8.11.2/solr-8.11.2.tgz
      [get] To: /opt/modules/ambari-infra/ambari-infra-assembly/target/solr.tgz
      [get] http://archive.apache.org/dist/lucene/solr/8.11.2/solr-8.11.2.tgz permanently moved to https://archive.apache.org/dist/lucene/solr/8.11.2/solr-8.11.2.tgz
      [get] Error getting http://archive.apache.org/dist/lucene/solr/8.11.2/solr-8.11.2.tgz to /opt/modules/ambari-infra/ambari-infra-assembly/target/solr.tgz
      [ant] Exiting /opt/modules/ambari-infra/ambari-infra-assembly/build.xml.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for ambari-infra 3.0.0.0-SNAPSHOT:
[INFO]
[INFO] ambari-infra ....................................... SUCCESS [ 10.407 s]
[INFO] Ambari Infra Solr Client ........................... SUCCESS [ 39.235 s]
[INFO] Ambari Infra Solr Plugin ........................... SUCCESS [ 31.489 s]
[INFO] Ambari Infra Manager ............................... SUCCESS [01:43 min]
[INFO] Ambari Infra Assembly .............................. FAILURE [  4.932 s]
[INFO] Ambari Infra Manager Integration Tests ............. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:09 min
[INFO] Finished at: 2024-07-12T13:31:53Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project ambari-infra-assembly: An Ant BuildException has occured: The fol
lowing error occurred while executing this line:
[ERROR] /opt/modules/ambari-infra/ambari-infra-assembly/build.xml:24: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgor
ithmParameterException: the trustAnchors parameter must be non-empty
[ERROR] around Ant part ...<ant antfile="build.xml">... @ 4:28 in /opt/modules/ambari-infra/ambari-infra-assembly/target/antrun/build-main.xml
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project ambari-infra-asse
mbly: An Ant BuildException has occured: The following error occurred while executing this line:
/opt/modules/ambari-infra/ambari-infra-assembly/build.xml:24: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmPara
meterException: the trustAnchors parameter must be non-empty
around Ant part ...<ant antfile="build.xml">... @ 4:28 in /opt/modules/ambari-infra/ambari-infra-assembly/target/antrun/build-main.xml
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: The following error occurred while executing this line:
/opt/modules/ambari-infra/ambari-infra-assembly/build.xml:24: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmPara
meterException: the trustAnchors parameter must be non-empty
around Ant part ...<ant antfile="build.xml">... @ 4:28 in /opt/modules/ambari-infra/ambari-infra-assembly/target/antrun/build-main.xml
    at org.apache.maven.plugin.antrun.AntRunMojo.execute (AntRunMojo.java:355)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.tools.ant.BuildException: The following error occurred while executing this line:
/opt/modules/ambari-infra/ambari-infra-assembly/build.xml:24: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmPara
meterException: the trustAnchors parameter must be non-empty
    at org.apache.tools.ant.ProjectHelper.addLocationToBuildException (ProjectHelper.java:551)
    at org.apache.tools.ant.taskdefs.Ant.execute (Ant.java:444)
    at org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor30.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform (Task.java:348)
    at org.apache.tools.ant.Target.execute (Target.java:390)
    at org.apache.tools.ant.Target.performTasks (Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets (Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget (Project.java:1368)
    at org.apache.maven.plugin.antrun.AntRunMojo.execute (AntRunMojo.java:327)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.tools.ant.BuildException: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException
: the trustAnchors parameter must be non-empty
    at org.apache.tools.ant.taskdefs.Get.execute (Get.java:137)
    at org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor30.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform (Task.java:348)
    at org.apache.tools.ant.Target.execute (Target.java:390)
    at org.apache.tools.ant.Target.performTasks (Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets (Project.java:1399)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets (SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets (Project.java:1251)
    at org.apache.tools.ant.taskdefs.Ant.execute (Ant.java:442)
    at org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor30.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform (Task.java:348)
    at org.apache.tools.ant.Target.execute (Target.java:390)
    at org.apache.tools.ant.Target.performTasks (Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets (Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget (Project.java:1368)
    at org.apache.maven.plugin.antrun.AntRunMojo.execute (AntRunMojo.java:327)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: 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:1937)
    at sun.security.ssl.SSLSocketImpl.fatal (SSLSocketImpl.java:1894)
    at sun.security.ssl.SSLSocketImpl.handleException (SSLSocketImpl.java:1877)
    at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1398)
    at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1375)
    at sun.net.www.protocol.https.HttpsClient.afterConnect (HttpsClient.java:563)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect (AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect (HttpsURLConnectionImpl.java:153)
    at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection (Get.java:660)
    at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection (Get.java:684)
    at org.apache.tools.ant.taskdefs.Get$GetThread.get (Get.java:579)
    at org.apache.tools.ant.taskdefs.Get$GetThread.run (Get.java:569)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at sun.security.validator.PKIXValidator.<init> (PKIXValidator.java:90)
    at sun.security.validator.Validator.getInstance (Validator.java:179)
    at sun.security.ssl.X509TrustManagerImpl.getValidator (X509TrustManagerImpl.java:312)
    at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit (X509TrustManagerImpl.java:171)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted (X509TrustManagerImpl.java:184)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:124)
    at sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1460)
    at sun.security.ssl.ClientHandshaker.processMessage (ClientHandshaker.java:212)
    at sun.security.ssl.Handshaker.processLoop (Handshaker.java:969)
    at sun.security.ssl.Handshaker.process_record (Handshaker.java:904)
    at sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:1050)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1363)
    at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1391)
    at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1375)
    at sun.net.www.protocol.https.HttpsClient.afterConnect (HttpsClient.java:563)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect (AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect (HttpsURLConnectionImpl.java:153)
    at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection (Get.java:660)
    at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection (Get.java:684)
    at org.apache.tools.ant.taskdefs.Get$GetThread.get (Get.java:579)
    at org.apache.tools.ant.taskdefs.Get$GetThread.run (Get.java:569)
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)
    at sun.security.validator.PKIXValidator.<init> (PKIXValidator.java:88)
    at sun.security.validator.Validator.getInstance (Validator.java:179)
    at sun.security.ssl.X509TrustManagerImpl.getValidator (X509TrustManagerImpl.java:312)
    at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit (X509TrustManagerImpl.java:171)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted (X509TrustManagerImpl.java:184)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:124)
    at sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1460)
    at sun.security.ssl.ClientHandshaker.processMessage (ClientHandshaker.java:212)
    at sun.security.ssl.Handshaker.processLoop (Handshaker.java:969)
    at sun.security.ssl.Handshaker.process_record (Handshaker.java:904)
    at sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:1050)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1363)
    at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1391)
    at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1375)
    at sun.net.www.protocol.https.HttpsClient.afterConnect (HttpsClient.java:563)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect (AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect (HttpsURLConnectionImpl.java:153)
    at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection (Get.java:660)
    at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection (Get.java:684)
    at org.apache.tools.ant.taskdefs.Get$GetThread.get (Get.java:579)
    at org.apache.tools.ant.taskdefs.Get$GetThread.run (Get.java:569)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :ambari-infra-assembly
make: *** [rpm] Error 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237

# 解决排查思路

首先,我们需要确定 SSL 错误的根本原因。根据错误日志,可能是由于 Java 环境的 trustAnchors 参数为空,导致 SSL 证书无法验证。trustAnchors 是指系统信任的证书库,它包含了受信任的根证书,Java 需要这些证书来验证远程服务器的身份。

以下是常见的几种可能性:

  1. 缺少证书文件: 当前 JDK 可能缺少必要的根证书(cacerts 文件),或者该文件没有正确配置。
  2. 使用的 JDK 不兼容: 使用 OpenJDK 时,可能某些证书和加密算法不支持,尤其是在与外部服务器进行 HTTPS 通信时。
  3. 网络问题: 下载文件的过程中,可能因为证书链无法验证,或者镜像源不可靠,导致下载失败。

# 最终解决办法

经过排查,我们确定问题的根本原因是 JDK 缺少适当的证书库。为了解决这个问题,我们需要更换 JDK 并确保使用正确的证书库。我们选择将 OpenJDK 更换为 Oracle JDK,Oracle JDK 默认包含完整的证书链,并且在 SSL 握手时能够更好地处理各种加密和验证问题。

# 步骤 1:下载并安装 Oracle JDK

  1. 访问 Oracle JDK 下载页面 (opens new window) 下载适用于 Linux 系统的 JDK 8。

  2. 解压并安装 JDK:

    tar -xzvf jdk-8u202-linux-x64.tar.gz -C /opt
    
    1
  3. 配置 JDK 环境变量:

    export JAVA_HOME=/opt/jdk-8u202
    export PATH=$JAVA_HOME/bin:$PATH
    
    1
    2

# 步骤 2:验证 JDK 配置

在安装完成后,使用以下命令验证是否正确切换到 Oracle JDK:

java -version
1

如果输出的版本信息是 Oracle JDK,则表示配置成功。

# 步骤 3:重新构建项目

配置好新的 JDK 后,清理 Maven 缓存并重新构建项目:

mvn clean install
1

通过这种方式,问题得到了解决,构建成功。

提示

如果你遇到类似的 SSL 错误,可以尝试更换为 Oracle JDK 并重新构建,通常能解决类似问题。Oracle JDK 默认包含更完整的证书支持,能够确保 SSL 握手的顺利进行。

# 错误日志分析

以下是完整的错误日志内容,可以帮助你理解问题的具体原因:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for ambari-infra 3.0.0.0-SNAPSHOT:
[INFO] ambari-infra ....................................... SUCCESS [ 10.407 s]
[INFO] Ambari Infra Solr Client ........................... SUCCESS [ 39.235 s]
[INFO] Ambari Infra Solr Plugin ........................... SUCCESS [ 31.489 s]
[INFO] Ambari Infra Manager ............................... SUCCESS [01:43 min]
[INFO] Ambari Infra Assembly .............................. FAILURE [  4.932 s]
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project ambari-infra-assembly: An Ant BuildException has occured: The following error occurred while executing this line:
[ERROR] /opt/modules/ambari-infra/ambari-infra-assembly/build.xml:24: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
1
2
3
4
5
6
7
8
9
10

# 常见解决方案

  1. 确认 JDK 版本: 使用 OpenJDK 时,可能由于 SSL 配置不完全或证书库缺失导致 SSL 错误。使用 Oracle JDK 通常能够解决此类问题。

  2. 更新证书: 如果使用 OpenJDK,确保已更新和配置 Java 的 cacerts 文件,或者手动将根证书导入到信任库中。

  3. 检查网络问题: 如果使用国内源(如阿里云或华为云的镜像源),确保源服务器的 SSL 证书没有问题,可以更换为稳定的镜像源。

警告

如果你已经配置了证书并且更换了 JDK 仍然无法解决问题,可以尝试手动导入 SSL 证书到 Java 信任库中。具体步骤如下:

keytool -importcert -file <certificate_file> -keystore $JAVA_HOME/lib/security/cacerts -alias <certificate_alias>
1
#SSLException#Java#Maven#Ambari
maven-compiler-plugin:3.3:compile
psutil 缺失与 archive_util 导入错误

← maven-compiler-plugin:3.3:compile psutil 缺失与 archive_util 导入错误→

最近更新
01
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式