javax.net.ssl.SSLException: имя хоста в сертификате не совпадает: ‹site2› != ‹site1› ИЛИ ‹site1›

Задний план:

  • Сайт 1 — Томкэт
  • Сайт 2 — ИИС

Оба сайта находятся на одном сервере Windows. Оба сайта доступны в разных DNS:

  • site1.com
  • site2.com

Доступ к site1.com идет вперед к IIS (я думаю), затем я использую перезапись URL-адреса в IIS для пересылки запросов site1.com на localhost: 8080.

Наконец, оба сайта доступны по протоколу HTTPS в браузерах, и оба сайта имеют действительные SSL-сертификаты.

Проблема:

Site1 обычно делает вызовы REST API для site2. Site1 вызывает site2 с помощью Java HttpClient (HttpGet и HttpPost). Но когда это происходит, возникает ошибка, и журналы показывают ошибку ниже:

javax.net.ssl.SSLException: имя хоста в сертификате не совпадает: <site2> != <site1> OR <site1>

Может кто-нибудь помочь и пролить свет, пожалуйста? Или если есть какие-либо другие предложения о том, что использовать.


person John Limpin    schedule 25.02.2018    source источник
comment
взгляните на это: stackoverflow.com/questions/2703161/   -  person Eugène Adell    schedule 25.02.2018
comment
@EugèneAdell Я думаю, что это неправильно делать в производственной среде.   -  person John Limpin    schedule 26.02.2018
comment
Вы не сказали, что это для производственного использования, и вы попросили предложения. Посмотрите ответ granko87 здесь: stackoverflow.com/questions/7256955/. Возможно, вам стоит проверить, что ваш DNS тоже все правильно разрешает.   -  person Eugène Adell    schedule 26.02.2018