2016-06-01 3 views
0

Есть ли способ создать SSLEngine, используя сертификаты, установленные с Chrome? Я помню, что по умолчанию в нем установлено несколько официальных сертификатов полномочий.Как создать SSLEngine со всеми теми же открытыми ключами/сертификатами от chrome, firefox или любого браузера?

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

спасибо, Дин

ответ

1

Из того, что я собираю каждый браузер использует собственное хранилище сертификатов. Существуют три решения: один статический, один динамический и один «достаточно хороший». Здесь мы идем:

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

  2. Динамическое решение - в основном то же, что и выше, но вы делаете это во время запуска приложения.

  3. Ленивое, но достаточно хорошее решение - вы ничего не делаете и надеетесь, что сертификаты в cacerts JKS почти идентичны сертификатам в браузере, будь то Chrome, Firefox, Opera или IE.

Но обратите внимание на следующее: https://bugzilla.mozilla.org/show_bug.cgi?id=1265113 также, кажется, что на Windows, Chrome читает сертификаты Windows' хранилище сертификатов, так что в действительности ваше приложение, вероятно, следует прочитать хранилище сертификатов системы и использовать его: на Linux есть/USR/доля/CA-сертификаты и начать с Windows, вы можете попробовать: https://superuser.com/questions/411909/where-is-the-certificate-folder-in-windows-7

к сожалению, кажется, что реализация может быть довольно запутанным - но эй !, это очень хороший проект с открытым исходным кодом :)