Формат хранилища ключей Mozilla cert8.db по умолчанию не читается (хотя можно «подключить» провайдера, который может его анализировать). Проще всего импортировать сертификат в хранилище ключей, которое поддерживается по умолчанию. 1001 *
Для начала вам нужна копия сертификата.
В Firefox перейдите на соответствующую страницу. Нажмите значок «Блокировка» в строке состояния в правом нижнем углу окна. В появившемся диалоговом окне нажмите кнопку «Просмотреть сертификат». Новый диалог появится; выберите вкладку «Подробности». Нажмите кнопку «Экспорт» в нижней части окна, чтобы сохранить сертификат в файл (используйте формат DER или PEM).
Теперь вам нужно получить сертификат в формате хранилища ключей, используемом Java.
Используйте утилиту JDK keytool
:
keytool -import -keystore mykeystore.jks -alias iamt -file iamt.wisconsin.gov
Когда будет запрошен пароль, выберите новый пароль, который позже можно будет использовать для проверки того, что сертификаты в хранилище ключей не были подделаны. Затем keytool
предложит вам доверять новому сертификату - введите yes! У вас должен быть новый файл хранилища ключей Java с именем «mykeystore.jks» (или что вы выберете).
Теперь запустите вашу программу, указав новый файл хранилища ключей в качестве значения свойства "javax.net.ssl.trustStore".
Кстати, я заметил, что вы возвращаете вывод Java Beans XMLEncoder
из вашего сервиса. Этот формат "Long Term Persistence" является пропущенной драгоценностью JDK, но он небезопасен для анализа ненадежного контента. Используя этот синтаксис, любой метод может быть вызван в JVM, выполняющем анализ. Это похоже на «eval» с ненадежным JSON. Таким образом, если бы я реализовывал клиентскую службу, я бы, вероятно, не захотел бы проанализировать результат из службы без большой дополнительной работы, чтобы «вставить в песочницу» синтаксический анализ как ненадежный код. И я предполагаю, что служба анализирует один и тот же формат в запросах, что также опасно для сервера.
Когда вы задаете вопрос о сообщении об ошибке, хорошей идеей будет опубликовать все сообщение, включая трассировку стека (если это не java.lang.StackOverflowError
!). Это может быть бессмысленно для вас, но часто в нем есть информация, необходимая для мгновенного выявления проблемы.