Вопрос или проблема
У меня возникли трудности с настройкой определенного сервера IIS на использование SSL. Это тестовая среда (одна из многих), которую мы настроили “так же”, как и многие разы ранее, но она, похоже, просто не работает.
Сервер работает на Windows Server 2003 (Версия 5.2 (Сборка 3790.srv03_sp2_gdr.100216-1301 : Service Pack 2))
IIS хостит 4 сайта (включая сайт по умолчанию), но только один из сайтов настроен для использования SSL. Мы используем тот же сертификат SSL, что и на всех наших других серверах (это сертификат с подстановочным знаком).
(Не думаю, что это имеет значение, но все же включаю) Мы настроили сайт так, чтобы требовать SSL, у него есть подсеть, которая не требует SSL, но имеет asp-страницу, которая перенаправляет на SSL. Страница ошибки 403;4 для сайта подключена к этой asp-странице (так мы осуществляем переход с не-HTTPS на HTTPS).
С помощью Microsoft Network Monitor (3.3) я только что запустил сеанс на сервере, где SSL работает. Он может разобрать обмен SSL на следующие сообщения:
SSL: Client Hello
SSL: Server Hello. Certificate. Server Hello Done
SSL: Client Key Exchange. Change Cipher Spec. Encrypted Handshake Message.
SSL: Change Cipher Spec. Encrypted Handshake Message
Однако на нашем проблемном сервере я вижу только:
SSL: Client Hello.
Следующий пакет от сервера (с порта 443, так что он слушает и отвечает там) содержит только 60 байт и кажется, что в нем только заголовки Tcp и не так много другого (но я далеко не эксперт в расшифровке этих вещей).
Так где мне искать дальше? Или какую дополнительную информацию мне нужно добавить к этому вопросу, и где мне ее найти?
И, как обычно бывает, написав этот вопрос, мы вскоре обнаружили ошибку:
Оказалось, что с копией сертификата SSL на этом сервере что-то не так (несмотря на то, что все выглядело правильно в менеджере IIS, включая сообщение о наличии соответствующего закрытого ключа). Никакое количество перезапусков сайта в IIS, доступа к сайту через SSL или снятия/повторного назначения сертификата не дало никаких сообщений в журналах событий.
Нам пришлось удалить сертификат и повторно импортировать его из файла.
У нас есть подозрение, что этот сервер, возможно, был клонирован в какой-то момент, поэтому это могло быть связано с процессом клонирования. Оставляю эти дополнительные сведения в качестве ответа, надеясь, что это поможет кому-то еще в будущем.
Через 13 лет принятый вариант решения исправил это для нас, когда Wireshark показывал, что клиент пытался подключиться через TLSv1.0 с рукопожатием TLSv1.2. Никакое количество перезапусков, повторного назначения сертификата, удаления старых привязок через netsh не решили проблему. Это произошло после обновления нашего сертификата SSL до новой версии, но с сохранением того же удобного имени. Мы дважды удостоверились, что это правильный SSL сертификат каждый раз, но я предполагаю, что Windows продолжает использовать старый сертификат с тем же удобным именем.
Ответ или решение
Анализ проблемы: IIS не отвечает при инициативе SSL Server Hello
Когда вы сталкиваетесь с проблемами конфигурации SSL на веб-сервере IIS, важно учитывать несколько ключевых аспектов, чтобы успешно устранить неполадки. В этом случае обсуждается ситуация на сервере Windows Server 2003 с IIS, на котором не происходит ответа на запрос SSL Server Hello. Давайте рассмотрим, как можно диагностировать и исправить данную проблему.
1. Проверка сертификационного процесса
Первый шаг заключается в анализе SSL-сертификата, используемого вашим сервером. В вашем случае, несмотря на то, что сертификат отображается в IIS Manager как корректный, настоящая причина может крыться в некорректности данных сертификата или конфигурации. Во время устранения неполадок выполните следующие шаги:
- Проверьте соответствие приватного ключа: Убедитесь, что сертификат связан с правильным приватным ключом. Если в процессе клонирования сервера произошли ошибки, это может стать причиной некорректной работы SSL.
- Убедитесь в целостности сертификата: Попробуйте удалить текущий сертификат и заново импортировать его с файла. Это может помочь устранить проблемы, возникающие из-за неполной или некорректной информации о сертификате.
2. Конфигурация IIS для SSL
После анализа сертификата необходимо проверить конфигурацию самого IIS:
- Настройка SSL на сайте: Убедитесь, что сайт действительно настроен на использование SSL, и соблюдаются все необходимые настройки для обеспечения безопасного соединения.
- Задайте необходимые разрешения: Проверьте, есть ли у IIS необходимые разрешения для доступа к SSL-сертификату.
3. Диагностика сетевого взаимодействия
Существуют различные инструменты для анализа сетевого трафика, которые позволяют вам отслеживать процесс обмена данными при установлении SSL:
- Используйте Wireshark или Microsoft Network Monitor: Если вы не видите сообщение "Server Hello" от сервера, что указывает на проблемы в установлении безопасного соединения, проанализируйте сетевой трафик на наличие IP/порт конфигураций и открытых соединений.
4. Проверка протоколов шифрования
Современные требования к безопасности требуют поддержки новых протоколов шифрования, таких как TLS 1.2:
- Убедитесь в поддержке требуемых версий TLS: На Windows Server 2003 может отсутствовать поддержка TLS 1.2. Проверьте настройки на вашем сервере, возможно, вам потребуется обновить систему для поддержки новых протоколов.
5. Логи и отладка
Ошибки могут не всегда отображаться в графическом интерфейсе IIS, поэтому:
- Проверяйте системные журналы и журналы событий: Вам может быть полезно просмотреть журналы IIS и системные журналы Windows для выявления сомнительных записей или предупреждений, связанных с SSL.
Заключение
Ваша ситуация включает в себя относительную простоту диагностирования, если учитывать этапы проверки соответствия сертификатов, конфигурации IIS и анализа сетевого трафика. Зачастую основная задача сводится к переустановке сертификата или обновлению настроек для поддержки новых протоколов. Проблемы, возникшие из-за клонирования сервера, могут привести к подобным неполадкам, о которых вы упоминали. Следуя описанным шагам, вы сможете устранить проблему и жестко закрепить безопасность вашей среды.