Могу ли я создать самозаверяющий сертификат в Java, которому веб-браузеры будут автоматически доверять? - PullRequest
5 голосов
/ 19 августа 2009

Я сгенерировал самоподписанный сертификат для своего Java-приложения, используя keytool. Однако, когда я захожу на сайт в браузере, он всегда появляется с предупреждением - говорят, что у этого сайта нет сертификата - есть ли способ самостоятельно подписать / оформить сертификат, чтобы я не получил эти предупреждения в браузер? И сервер, и браузер расположены на одном хосте, и я перехожу на сайт с помощью "http://localhost/".. Я не хочу добавлять исключение в браузер, потому что у меня есть тесты, которые выполняются на большой ферме сборки, поэтому она чрезмерна добавить исключение для всех браузеров на всех компьютерах сборки.

Ответы [ 4 ]

19 голосов
/ 19 августа 2009

Нет, вы не можете. Вы также можете спросить: «Как я могу сделать поддельный сертификат для hsbc.com?"

?

Есть два способа заставить браузер принять сертификат:

  • Купите сертификат для домена в доверенном органе (что означает подтверждение того, что вы владеете этим доменом), а затем используйте этот домен в качестве имени ваших тестовых серверов
  • Установите сертификат подписи в браузерах, чтобы вы стали надежным авторитетом для этого браузера.

Не касаясь браузеров, другого способа сделать это не существует - как быть, если интернет должен оставаться безопасным?

4 голосов
/ 19 августа 2009

Вы также можете настроить самозаверяющий центр сертификации (ЦС), используя OpenSSL или, возможно, свой инструмент Java. Затем вы можете использовать этот ЦС для подписи нескольких сертификатов сервера.

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

Другой вариант - проверить CAcert .

1 голос
/ 20 августа 2009

Вместо этого создайте сертификат для "localhost". Он должен соответствовать имени хоста, которое вы указали в URL.

Вас все равно будут беспокоить, поскольку сертификат не является доверенным, но это еще одна проблема.

1 голос
/ 19 августа 2009

Это сертификат, который вы создали для localhost или test.textbox.com? Если вы создаете сертификат для полного доменного имени test.textbox.com, вам необходимо подключиться к серверу, чтобы не получать эти ошибки, если сертификат правильно подписан. Вы не можете сгенерировать сертификат для полного доменного имени, а затем использовать IP-адрес или псевдоним (localhost) для доступа к нему без предупреждения о том, что что-то не соответствует должным образом. Или я неправильно понимаю вашу проблему?

...