Lorsque vous faites une recherche google pour cette exception: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
, plusieurs résultats apparaissent. Cependant il n'existe pas de solution définitive, seulement des suppositions.
Le problème se pose (dans mon cas au moins) lorsque j'essaie d'ouvrir une connexion SSL. Il fonctionne très bien sur ma machine windows, mais quand je la déployer sur la machine linux (avec du soleil jre installé), il échoue avec l'exception ci-dessus.
Le problème est que la valeur par défaut truststore de la JRE est vide pour une raison quelconque (taille de 32 octets, alors qu'elle est de 80 ko sur windows).
Lorsque j'ai copié mon jre/lib/security/cacerts
le fichier à partir de windows à linux, il a bien fonctionné.
La question est pourquoi est - linux jre avoir un vide de trust store?
Notez que ce qui se passe sur une instance Amazon EC2, avec l'AMI linux, donc ça peut être dû à des amazon politiques (je pense que java a été pré-installé, mais je ne suis pas sûr)