Программно добавляем доверенный сертификат в Java - PullRequest
8 голосов
/ 04 мая 2010

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

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

Ответы [ 3 ]

5 голосов
/ 05 мая 2010

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

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

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

0 голосов
/ 04 мая 2010

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

0 голосов
/ 04 мая 2010

Почему бы вам не создать свой собственный ЦС и не подписать этим сертификаты? Тогда все, что вам нужно сделать, это установить собственный сертификат CA на компьютеры, и каждый сертификат, подписанный этим CA, будет проверяться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...