【问题标题】:Is the cacerts file missing in ubuntu 15.10 and openjdk-8-jdk?ubuntu 15.10 和 openjdk-8-jdk 中是否缺少 cacerts 文件?
【发布时间】:2016-01-31 02:38:43
【问题描述】:

我刚刚安装了 Ubuntu 15.10 和他们的 openjdk-8-jdk(通过 apt-get)。

现在我缺少 cacerts 文件。

通常位置有链接:

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 java-8 openjdk jsse ubuntu-15.10


    【解决方案1】:

    在 centos 中你必须这样做:

    $ sudo dnf install ca-certificates
    

    【讨论】:

      【解决方案2】:

      只是在这里添加一个 Gergely 回答解决的错误,如果您尝试使用 ssl 调用外部 api 并收到此错误:

      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 
      

      【讨论】:

        【解决方案3】:

        这是由于此处已报告的错误: Ubuntu bug ticket

        上面的票链接了另一个类似的issue,它提供了一个解决方法:

        $ sudo dpkg --purge --force-depends ca-certificates-java
        $ sudo apt-get install ca-certificates-java
        

        【讨论】:

          猜你喜欢
          • 2014-08-28
          • 1970-01-01
          • 1970-01-01
          • 2016-03-18
          • 2023-03-15
          • 1970-01-01
          • 2019-06-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多