Файл cacerts отсутствует в Ubuntu 15.10 и openjdk-8-jdk?

Я только что установил 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

person Gustave    schedule 30.10.2015    source источник


Ответы (3)


Это связано с ошибкой, о которой уже сообщалось здесь: заявка на ошибку Ubuntu

В билете выше есть ссылка на другую похожую проблему, которая предлагает обходной путь:

$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java
person Gergely Bacso    schedule 30.10.2015

Просто добавьте сюда ошибку, которую Gergely решил, если вы попытаетесь вызвать внешний API с помощью ssl и получите эту ошибку:

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 
person Paulo Victor    schedule 16.02.2020

В Centos вы должны сделать это:

$ sudo dnf install ca-certificates
person Sajjad    schedule 03.02.2021