Программно добавляя доверяемый сертификат в Java

Я использую SSL для передачи между двумя компонентами, записанными в Java. Я не могу использовать CA, таким образом, я должен самоподписать все. К сожалению, это означает, что, когда я пытаюсь квитировать, я получаю SunCertPathBuilderException. Я могу создать свой собственный X509TrustManager, который просто доверяет всему, но таким поражениям цель наличия сертификата со знаком.

Я хотел бы, сначала устанавливание связи, для запроса пользователя с "SSL квитирует с недопустимым сертификатом. Добавить сертификат для хранения?" или что-то так, у них мог быть добавленный для них к их хранилищу сертификатов, как веб-браузеры делает на сайтах с недопустимыми сертификатами. Я могу найти много примеров онлайн добавления сертификата к хранилищу через командную строку, но я не могу выяснить, как сделать это программно. Существует ли способ сделать это?

8
задан directedition 4 May 2010 в 16:21
поделиться

3 ответа

Да, это возможно.

Здесь есть код , который я использовал раньше. Мне пришлось изменить его, чтобы сделать то, что я хотел, и я подозреваю, что вы тоже это сделаете, но это должно вас приблизить - вы не пытаетесь импортировать ключ, поэтому теоретически вы должны иметь возможность упростить вещи. В любом случае вы можете получить представление о том, что вам понадобится.

JDK JavaDoc для java.security.KeyStore тоже очень полезен.

5
ответ дан 5 December 2019 в 23:14
поделиться

Зачем вам это нужно, вы не подтверждаете, что клиент является тем, кем они себя называют, вы используете сертификаты только для шифрования сообщений, поэтому настраиваемый диспетчер доверия, который позволяет использовать все сертификаты, - это все, что вам нужно. То, что вы запрашиваете, возможно, и по памяти также включает настраиваемый диспетчер доверия для проверки сертификатов и сохранения их в хранилище ключей. Я не могу вспомнить подробностей, но, по крайней мере, вы знаете, что это возможно.

0
ответ дан 5 December 2019 в 23:14
поделиться

Почему бы вам не создать свой собственный центр сертификации и не подписать с ним свои сертификаты? Затем все, что вам нужно сделать, это установить собственный сертификат CA на машины, и каждый сертификат, подписанный этим CA, будет подтвержден.

0
ответ дан 5 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: