Я забочусь о устаревшей win2k3 (sp2), на которой установлен IIS 6. У меня очень странная проблема, из-за которой я выдергиваю волосы.
Когда служба w3svc запускается в первый раз (через перезагрузку или чистую остановку / запуск), начальные подключения к службе SSL этого конкретного веб-сайта немедленно завершаются с ошибкой ERR_SSL_PROTOCOL_ERROR. Я предоставлю дополнительную диагностическую информацию ниже.
А теперь список совершенно непонятных симптомов и попыток их исправить:
Я не вижу соответствующей информации журнала в диспетчере событий (приложение, система или безопасность) или в файлах журнала w3svc.
Filemon не показывает ничего странного, что я могу сказать (доступ запрещен или файл не найден), несмотря на это, я сомневаюсь, что сертификат действительно извлекается из файла.
Я провел другие тесты, используя wget
и SSLDiag
инструменты, которые говорят одно и то же без какой-либо реальной дополнительной диагностической информации.
Осмотр проводной акулы показывает, что соединение просто разрывается:
Когда сервер "исправлен" с помощью описанного выше метода остановки / запуска, сервер отвечает нормально (такие пакеты FIN / ACK не отправляются).
Вышеупомянутое заставляет меня задуматься, не является ли это внезапной ошибкой страницы, которая немедленно завершает поток до того, как будет выполнено какое-либо ведение журнала или что-то еще.
Я в растерянности, я потратил более 8 часов на эту ошибку и до сих пор не могу найти способ ее решить. Мне бы хотелось, чтобы кто-то действительно знал, что происходит, но на самом деле я просто надеюсь на некоторые идеи о том, как продолжить отладку / проверку, чтобы определить источник проблемы.
NB: Есть ограничения, которых я не могу избежать, например, переустановка сервера или обновление сервера не являются вариантами на данный момент.
Итак, я наконец-то нашел решение этой проблемы, однако решение не дает мне понять, в чем была ошибка (я думаю, что для этого потребуется исходный код, и, учитывая, что Win2k3 / IIS 6 больше не поддерживается, я не вижу полезности в такой затее). Но лучше напишите об этом на будущее для общего блага.
Следуя совету Твисти, я начал думать о природе проблемы. Сначала я остановил все веб-сайты на сервере, кроме одного, и перезапустил веб-сервис. Это ничего не дало.
Затем я посмотрел на другие неактивные веб-сайты (те, которые долгое время находились в остановленном состоянии) и проверил, есть ли у них возможные конфликты. Я заметил, что один из них был настроен на использование именно этого сертификата. Однако удаление сертификата с этого сайта не решило проблему. Кроме того, были и другие неактивные сайты, которые были настроены на использование других сертификатов, но эти другие сертификаты не отображали эту ошибку.
TL; DR - В конце концов я прибег к простому удалению устаревшего веб-сайта, чтобы посмотреть, поможет ли это, и это действительно решило проблему. -
Я не знаю, и у меня нет времени (скорее, у моего клиента) вернуться и создать веб-сайты, чтобы изучить полное поведение ошибки. Но я предполагаю, что это было связано с сертификатами на неактивных сайтах.
Надеюсь, эта ошибка никогда не случится с кем-либо еще.