четверг, 24 января 2019 г.

IIS 8. После обновления сертификата перестал работать SNI (Server Name Indication)

На днях столкнулся с интересной проблемой и решил оставить небольшое ее описание с решением. Суть в том, что есть у меня сервер с IIS, на котором размещено веб приложение. Оно работает с несколькими разными доменными именами по одному внешнему IP. Протокол HTTPS, порт 443. Соответственно, без SNI тут никак. Но вот после обновления сертификата для одной из привязок (binding) что-то пошло не так...

Теперь для всех сайтов начал использоваться один сертификат. Проверка биндингов в IIS ничего не показала, iisreset не помог. Всё выглядело корректно, но ничего не работало. В очередной раз помогла утилита netsh. Выполнил:

netsh http show sslcert

Тут я увидел свой дефолтный сокет:

IP:port                      : 0.0.0.0:443
Certificate Hash             : 8d4afc5ac022ebd3671af5a0c058435ce9478539
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
...

Но вот среди прочих параметров обнаружился один довольно странный:

...
IP:port                      : 178.159.XXX.YYY:443
Certificate Hash             : 8d4afc5ac022ebd3671af5a0c058435ce9478539
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
...

Именно сертификат, привязанный к данному сокету и отображался во всех подключениях! Отлично, теперь мы знаем, что надо делать:

netsh http delete sslcert ipport=178.159.XXX.YYY:443

После этого SNI снова ожил и сайты стали доступны. 

Комментариев нет:

Отправить комментарий