Aujourd'hui, j'ai essayé de mettre à niveau mon serveur avec une passerelle DAVmail. Sur ma précédente installation, j'ai utilisé openjdk-8-jre-headless sans aucun problème. Maintenant que je suis passé à 18.04 et que j'ai installé openjdk-11-jre-headless, le message d'erreur suivant s'affiche:
davmail.exception.DavMailException: Exchange login exception: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Si je rétrograde à openjdk-8-jre-headless à nouveau (et purge la version 11), l'erreur disparaît.
J'utilise "Let's encrypt" pour créer le certificat nécessaire - cela pose-t-il problème? Par exemple. que le nouveau certificat ISRG est inclus, mais que celui DST n’est plus présent? J'ai vérifié/usr/share/ca-certificates et trouvé les deux certificats d'autorité de certification, mais je ne sais pas si le contenu du magasin de clés Java est identique et si ce magasin de clés est même utilisé, car je fournis un fichier PKCS12. fichier via davmail.ssl.keystoreType=PKCS12
et davmail.ssl.keystoreFile=/etc/davmail/certs.p12
. À propos, ce paquet contient le certificat Let's Encrypt Authority X3
ainsi que mon propre certificat et ma clé privée.
Des idées?
On dirait que vous êtes affecté pour BUG 1739631
Le solution de contournement du bogue qui a fonctionné pour moi était:
éditez le fichier /etc/Java-9-openjdk/security/Java.security. Recherchez la ligne qui dit keystore.type = pkcs12 et remplacez-la par jks
supprime le fichier/etc/ssl/certs/Java/cacerts: rm /etc/ssl/certs/Java/cacerts
lancer update-ca-certificates -f
Exécutez ces commandes avec les autorisations Sudo
set -ex; \
keytool -importkeystore -srckeystore /etc/ssl/certs/Java/cacerts -destkeystore /etc/ssl/certs/Java/cacerts.jks -deststoretype JKS -srcstorepass changeit -deststorepass changeit -noprompt; \
mv /etc/ssl/certs/Java/cacerts.jks /etc/ssl/certs/Java/cacerts; \
/var/lib/dpkg/info/ca-certificates-Java.postinst configure;