ubuntu 15.10 和 openjdk-8-jdk 中是否缺少 cacerts 文件?
Is the cacerts file missing in ubuntu 15.10 and openjdk-8-jdk?
我刚刚安装了 Ubuntu 15.10 及其 openjdk-8-jdk(通过 apt-get)。
现在我缺少 cacerts 文件。
在常用位置有一个link:
ls -l /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts
lrwxrwxrwx 1 root root 27 Oct 22 01:47 /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts -> /etc/ssl/certs/java/cacerts
但 /etc/ssl/certs/java/cacerts 什么也没有:
stat /etc/ssl/certs/java/cacerts
stat: cannot stat ‘/etc/ssl/certs/java/cacerts’: No such file or directory
这是由于此处已报告的错误所致:
Ubuntu bug ticket
上面的工单链接了另一个类似的 issue,它提供了一个解决方法:
$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java
如果您尝试使用 ssl 调用外部 api 并遇到此错误,请在此处添加 Gergely 回答已解决的错误:
java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
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:1946)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1903)
这解决了
$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java
在 centos 中你必须这样做:
$ sudo dnf install ca-certificates
我刚刚安装了 Ubuntu 15.10 及其 openjdk-8-jdk(通过 apt-get)。
现在我缺少 cacerts 文件。
在常用位置有一个link:
ls -l /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts
lrwxrwxrwx 1 root root 27 Oct 22 01:47 /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts -> /etc/ssl/certs/java/cacerts
但 /etc/ssl/certs/java/cacerts 什么也没有:
stat /etc/ssl/certs/java/cacerts
stat: cannot stat ‘/etc/ssl/certs/java/cacerts’: No such file or directory
这是由于此处已报告的错误所致: Ubuntu bug ticket
上面的工单链接了另一个类似的 issue,它提供了一个解决方法:
$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java
如果您尝试使用 ssl 调用外部 api 并遇到此错误,请在此处添加 Gergely 回答已解决的错误:
java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
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:1946)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1903)
这解决了
$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java
在 centos 中你必须这样做:
$ sudo dnf install ca-certificates