Comment faire un certificat x.509 à partir d'un certificat PEM ?

J'essaie de tester un script, localement, qui consiste à télécharger un fichier à l'aide d'un programme basé sur Java sur un serveur FileZilla FTPES.

Pour la vraie chose, il y a un vrai certificat sur le serveur FZ, et l'étape de téléchargement (testée seule) semble fonctionner correctement.

J'ai installé le serveur FileZilla sur ma boîte de développement (il testera donc le téléchargement de localhost vers localhost). Je n'ai pas de vrai certificat pour cela, bien sûr, j'ai donc utilisé le "Générer un nouveau certificat..." bouton en FZ. Cela fonctionne bien à partir d'un programme FTPES interactif (tant que j'ACCEPTE le certificat inconnu), mais à partir de mon programme Java, il lance une exception javax.net.ssl.Sslhandshakeexception ("impossible de trouver un chemin de certification valide vers la cible demandée").

Alors, comment puis-je dire à Java que ce certificat me convient?

(Je sais qu'il existe un moyen de changer le programme Java pour accepter n'importe quel certificat, mais je ne veux pas emprunter cette voie. Je veux le tester comme cela se produira en production, et je ne voulez pas ignorer les certificats inconnus en production.)

J'ai trouvé que Java a un programme appelé "keytool" qui semble être pour gérer ce genre de chose, mais il se plaint que le fichier de certificat généré par FZ n'est pas un fichier "x.509". Une publication du côté FZ a déclaré qu'il était "codé PEM". J'ai "openssl" ici, qui semble parfait pour la conversion entre les formats de certificat, mais je pense que ma compréhension des formats de certificat est erronée car je ne vois rien évident.

Ma connaissance des certificats de sécurité est un peu fragile, donc si mon titre est bêtement faux, aidez-moi en corrigeant cela. :-)

demandé sur