Как сделать сертификат x.509 из сертификата PEM?
Я пытаюсь локально протестировать сценарий, который включает загрузку файла с помощью программы на основе Java на сервер FileZilla FTPES.
На самом деле на сервере FZ есть настоящий сертификат, и шаг загрузки (проверенный отдельно), похоже, работает нормально.
Я установил сервер FileZilla на свой ящик разработчика (поэтому он будет тестировать загрузку с локального хоста на локальный хост). У меня, конечно, нет настоящего сертификата для этого, поэтому я использовал "Создать новый сертификат..." кнопка в FZ. Он отлично работает в интерактивной программе FTPES (пока я разрешаю неизвестный сертификат), но из моей программы Java он выдает исключение javax.net.ssl.SSLHandshakeException ("не удается найти действительный путь сертификации к запрошенной цели").
Итак, как мне сообщить Java, что этот сертификат мне подходит?
(Я знаю, что есть способ изменить программу Java, чтобы принимать любой сертификат, но я не хочу идти по этому пути. Я хочу протестировать это так же, как это произойдет в производстве, и я не хочу игнорировать неизвестные сертификаты в производстве.)
Я обнаружил, что в Java есть программа под названием "keytool", которая, похоже, предназначена для управления такого рода вещами, но она жалуется, что файл сертификата, сгенерированный FZ, не является файлом "x.509". В сообщении со стороны FZ говорилось, что оно было "закодировано в PEM". У меня здесь есть "openssl", который, похоже, идеально подходит для преобразования между форматами сертификатов, но я думаю, что мое понимание форматов сертификатов неверно, потому что я ничего не вижу очевидный.
Мои знания о сертификатах безопасности немного шатки, поэтому, если мое название глупо неверно, пожалуйста, помогите это исправить. :-)