[Извините, если этот вопрос немного длинный, есть много дополнительной информации, если это актуально]
обзор
У меня проблема с SSL на ферме с балансировкой нагрузки на 4 ВМ в Azure. Если запрос HTTPS отправляется на первый сервер в ферме, все в порядке. Если он прибывает в любой из 3 других, то вызов не выполняется. Chrome выдаст ошибку протокола SSL, IE и Firefox просто скажут, что страница не может быть отображена.
Настройка
У меня есть четыре виртуальные машины Windows Server 2012 на Azure (маленький экземпляр, как только тестирование). Виртуальные машины находятся в одном облачном сервисе и имеют доступный набор Конечные точки с балансировкой нагрузки были добавлены для портов 80 и 443 (прямой возврат сервера НЕ включен на этих портах). Все четыре компьютера были настроены с помощью одного и того же сценария PowerShell и, за двумя исключениями, были полностью настроены таким образом.
Конфигурация IIS каждого сервера настроена на использование конфигурации общего ресурса, которая реплицируется через DFS на каждый сервер с первого сервера в группе. Это было настроено вручную для каждого сервера и работает нормально.
DFS также используется для репликации папки webs с первого сервера на другие.
Я также обнаружил "новую" функцию централизованных сертификатов после написания сценария развертывания, поэтому она была установлена и настроена вручную на четырех серверах. Я использую общий ресурс на отдельном сервере для хранения файлов сертификатов.
Запрос сертификата был сгенерирован на первом сервере, и я использовал SSL.com, чтобы получить бесплатный 90-дневный SSL для адреса subdomain.domain.com
. Я добавил запись CNAME для subdomain
в DNS для domain.com
указывающую на адрес cloudapp
Azure.
Я импортировал сертификат SSL на первый сервер, затем снова экспортировал его как subdomain.domain.com.pfx
(с паролем) и скопировал его в общую папку файлов сертификатов. При проверке централизованных сертификатов на всех четырех серверах они выводят список сертификатов без значков ошибок, указывающих на неправильный пароль в конфигурации и т.д.
Наконец, я изменил привязки сервера 1, чтобы добавить https с именем хоста subdomain.domain.com
и с установленными параметрами Требовать указание имени сервера и Использовать централизованное хранилище сертификатов . Проверка других серверов показывает, что привязки распространяются, как и ожидалось.
Эта проблема
Я добавил базовую страницу, которая просто показывает имя сервера, на котором был обработан запрос. Если я обработаю несколько окон IE, обращающихся к http://subdomain.domain.com
, они распечатают различные имена серверов, показывая, что конфигурация IIS и веб-файлы развертываются правильно, и механизм балансировки нагрузки Azure тоже делает свое дело , Который я нашел действительно классным на самом деле.
Тем не менее, он выходит из строя, когда я пытаюсь это через HTTPS. Только запросы, попавшие на первый сервер, выполняются успешно, остальные сбои и записи с "Эта страница не может быть отображена" или "Ошибка протокола SSL" в зависимости от того, с каким браузером я тестирую. На сервере 1 страница отображается нормально, сертификат доступен для просмотра и нет ошибок сертификата.
Я уверен, что это проблема конфигурации на серверах где-то, но я просто не могу сказать, что это такое. Большая часть того, с чем я играю, является новой для меня, поскольку в прошлом мы использовали физические некластеризованные серверы Windows 2003 с IIS6.
Что еще более озадачивает, так это то, что я отключаю четыре виртуальные машины на ночь, и когда я перезапускаю службу сегодня утром, сервер 2 теперь, очевидно, отвечает на запросы SSL в дополнение к серверу 1. С учетом вышесказанного я вчера тоже полностью отключился, и после этого все еще работал только сервер 1.
В файлах журнала IIS не отображаются сбойные запросы SSL, только группа из 200 для порта 80 и смесь 200 и 304 для порта 443 на сервере 1 и 2.
Я провел некоторую тщательную проверку в поисках Google, но ничто не проливает свет. На самом деле, полная противоположность тому, что я могу сказать, то, что я сделал, должно сработать.
Любые советы, которые помогут решить эту проблему, будут с благодарностью приняты.