我正在尝试在Jenkins/Hudson上配置我的电子邮件,并且我经常收到错误:
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be
non-empty
Run Code Online (Sandbox Code Playgroud)
我在网上看到了大量有关错误的信息,但我没有任何工作.我在Fedora Linux上使用Sun的JDK(而不是OpenJDK).
以下是我尝试过的一些事情.我尝试按照这篇文章的建议,但将cacerts从Windows复制到我托管Jenkins的Fedora盒子都没有用.我尝试将Gmail配置为我的SMTP服务器时尝试按照本指南操作,但它也无法正常工作.我还尝试手动下载并移动这些cacert文件,并使用本指南中的命令变体将它们移动到我的Java文件夹.
我对任何建议持开放态度,因为我现在正被困住.我已经从Windows Hudson服务器上工作了,但我在Linux上苦苦挣扎.
我的java程序如何知道包含证书的密钥库在哪里?或者,我如何告诉我的java程序在哪里查找密钥库?
以某种方式指定密钥库后,如何指定用于向客户端验证服务器的证书?
我确实想将自签名证书导入Java,因此任何尝试建立SSL连接的Java应用程序都会信任此证书.
到目前为止,我设法将其导入
keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem
Run Code Online (Sandbox Code Playgroud)
不过,当我尝试跑步时,HTTPSClient.class我仍然得到:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
当我去安装新软件并选择更新站点时,我收到"需要HTTP代理身份验证"错误.
我已经搜索了互联网很长一段时间了,我仍然没有得到答案.
事实:
我的系统:Eclipse for PHP Developers
版本:Luna Service Release 1a(4.4.1)
Build id:20150109-0600
Windows 7,64bit
java ×3
keystore ×2
certificate ×1
eclipse ×1
hudson ×1
jakarta-mail ×1
jenkins ×1
keytool ×1
proxy ×1