2009-08-19 1 views
5

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

ответ

4

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

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

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

+0

RichieHindle верен. Этот метод не избавится от предупреждений в браузере. – shosti

+0

Хороший ответ Брайан – sixtyfootersdude

19

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

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

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

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

+1

+1 для применения ключевой палочки энергично :-) –

+5

@Corehpf - вам нужен образный ответ или правда? Существует НЕ ПУТЬ, чтобы заставить браузеры принимать самозаверяющие сертификаты или сертификаты, подписанные сертификатом CA без полномочий root ... помимо установки их или сертификата CA в ваших браузерах. –

1

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

+0

Примечание: Очевидно, test.testbox.com - это всего лишь пример, который я использовал для этого. – MattC

+0

Он делает самозаверяющие сертификаты (что означает, что они не обращаются к какой-либо из известных ЦС), поэтому по определению он не может автоматически их принимать. Чтобы иметь сертификат, принятый автоматически браузером, он должен отследить обратно в ЦС, о котором знает браузер. –

+0

Да, но ошибка, связанная с тем, что сайт не владеет сертификатом, указывает, что имя хоста, для которого был создан сертификат, и все, что он использует для доступа к этому сайту, - это две разные вещи. Он сказал, что использует localhost, и я уверен, что сертификат предназначен для фактического имени сервера. Это приведет к появлению красных флагов в большинстве браузеров в качестве проблемы безопасности. – MattC

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^