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