当你用谷歌搜索这个异常时:java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
,出现多个结果。然而,没有明确的解决方案,只有猜测。
当我尝试通过 SSL 打开连接时,就会出现问题(至少在我的情况下)。它在我的 Windows 机器上工作正常,但是当我将它部署到 linux 机器(安装了 sun 的 jre)时,它失败并出现上述异常。
问题在于,由于某种原因,JRE 的默认信任库为空(大小仅为 32 字节,而 Windows 上为 80kb)。
当我复制我的jre/lib/security/cacerts
文件从windows到linux,工作正常。
问题是 - 为什么 linux jre 有一个空的信任存储?
请注意,这种情况发生在使用 AMI linux 的 Amazon EC2 实例上,因此可能是由于某些亚马逊政策所致(我认为 java 已预先安装,但我不确定)
我在 Ubuntu 中遇到了这个错误。我看到了
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts
/etc/ssl/certs/java/cacerts 的链接已损坏。这导致我发现了这个错误:https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/983302ca-certificates-java 的自述文件最终显示了实际的修复:
run
update-ca-certificates -f
apt-get install ca-certificates-java 对我不起作用。它只是将其标记为手动安装。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)