我试图在Jenkins/Hudson上配置我的电子邮件,但我经常收到错误:

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be
    non-empty

我已经在网上看到了关于这个错误的大量信息,但我还没有得到任何工作。我在Fedora Linux上使用Sun的JDK(不是OpenJDK)。

以下是我尝试过的一些方法。我试着按照这篇文章的建议,但是从Windows复制cacerts到我的Fedora盒子托管Jenkins不起作用。我尝试按照这个指南,因为我试图配置Gmail作为我的SMTP服务器,但它也没有工作。我还尝试手动下载并移动这些cacert文件,并使用本指南中的命令的变体将它们移动到我的Java文件夹中。

我愿意接受任何建议,因为我现在被困住了。我已经让它在Windows Hudson服务器上工作了,但在Linux上却很吃力。


当前回答

我希望出现这样的情况,因为我在Talend Open Studio中使用了另一个JVM(目前只支持JDK 1.7)。出于安全考虑,我使用8。无论如何

更新您的证书存储: Sudo update-ca-certificates -f

then

在初始化参数中添加一个新值 sudo gedit $(到你的体系结构特定的ini的路径,例如TOS_DI…ini) Djavax.net.ssl.trustStore = / etc / ssl /证书/ java /除

对我来说,第二项成功了。我认为,根据Talend Open Studio/TEnt + JVM的版本,它有不同的参数名称,但它查找相同的keystore文件。

其他回答

在升级到OS X v10.9 (Mavericks)后,我遇到了很多安全问题:

亚马逊AWS的SSL问题 未使用Maven和Eclipse验证Peer trustAnchors参数必须非空

我应用了这个Java更新,它解决了我所有的问题:http://support.apple.com/kb/DL1572?viewlocale=en_US

我在使用Android SDK sdkmanager时遇到了这个问题。对我来说,这个解决方案是有效的:

进入“/usr/lib/jvm/java-8-oracle/jre/lib/security/”目录 将cacert替换为cacert.original

cacert文件很小(22B)。我已经从ppa:webupd8team/java安装了oracle-java8-installer(根据本手册:https://docs.nativescript.org/start/ns-setup-linux)。

您必须将证书文件添加到java密钥存储库中 进入chrom,打开网站,以txt格式保存证书

2 .执行cmd> keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -alias Root -import -file Trustedcaroot.txt

https://knowledge.digicert.com/solution/SO4085.html

这招很管用

我在尝试使用Maven 3时遇到了这个问题,从Ubuntu 16.04 LTS (Xenial Xerus)升级到Ubuntu 18.04 LTS (Bionic Beaver)。

检查/usr/lib/jvm/java-8-oracle/jre/lib/security,发现我的cacerts文件是一个指向/etc/ssl/certs/java/cacerts的符号链接

我还有一个可疑的cacerts.original文件。

我重新命名了cacerts。原cacerts,这解决了问题。

在升级到OS X v10.9 (Mavericks)后,我使用JDK 1.7在OS X上遇到了这个确切的问题。对我来说,有效的解决方法是简单地重新安装苹果版的Java,可以在http://support.apple.com/kb/DL1572上找到。