Я хотів би розмістити веб-сайт, який повинен прослуховувати субдомени (наприклад, sub.domain.com) разом з кількома веб-сайтами, які живуть лише під доменом другого рівня (наприклад, domain2.com, domain3.com) з IIS та SSL.
Для веб-сайту з субдоменами у мене є сертифікат підстановки (* .domain.com), а також у мене є сертифікати спеціально для інших сайтів (domain2.com та domain3.com).
Чи може така установка розміщуватися на тому самому IIS (якщо це має значення в веб-ролі служби Azure Cloud Service)?
Проблема полягає саме в тому, що titobf пояснив тут : теоретично для цього нам знадобляться прив’язки за допомогою SNI, з хостом, вказаним для domain2 / 3.com, а потім загальнодоступним веб-сайтом з * хостом для * .domain.com. Але на практиці, незалежно від того, як налаштовані прив'язки, якщо веб-сайт "catch-all" на ньому, він також отримуватиме всі запити до domain2 / 3.com (хоча, мабуть, він відповідає лише в крайньому випадку).
Будь-яка допомога буде вдячна.
Досі нерозв’язаний
На жаль, мені це не вдалося вирішити: це, здається, вирішується лише надзвичайно складними способами, як, наприклад, створення програмного забезпечення, яке сидить між IIS та Інтернетом (так, в основному, брандмауер) та модифікує вхідні запити (до того, як відбудеться рукостискання SSL! ), щоб дозволити сценарій. Я досить впевнений, що з IIS це неможливо, навіть не з рідного модуля.
Я маю уточнити: ми використовуємо служби Cloud Cloud, тому ми маємо додаткове обмеження, що ми не можемо використовувати декілька IP-адрес (див .: http://feedback.azure.com/forums/169386-cloud-services-web-and -робоча роль / пропозиції / 1259311-кілька-ssl-і-домени-до-одного-додаток ). Якщо ви можете вказати кілька IP-адрес на ваш сервер, у вас цього питання не виникає, оскільки ви також можете створити прив’язки для IP-адрес, і вони працюватимуть разом прив'язки підстановки. Більш конкретно, вам потрібен IP-адрес для сайту wildcard (але, оскільки у вас є окремий IP-адресу, вам не доведеться налаштовувати прізвище хоста-підключення wildcard) та інший IP-адресу для всіх інших, що не мають wildcard.
Насправді наше вирішення полягало у використанні нестандартного порту SSL, 8443. Отже, зв'язування SNI фактично пов'язане з цим портом, таким чином воно працює разом з іншими прив’язками. Не приємно, але прийнятне вирішення для нас, поки ви не зможете використовувати кілька IP-адрес для веб-ролей.
Зараз непрацюючі прив’язки
Перше https-прив'язка - це SNI з простим сертифікатом, друге - не SNI, із сертифікатом підстановки.
Http-сайт працює, як і веб-сайт SNI https, але той, який містить прив'язку підстановки, дає "Помилка HTTP 503. Послуга недоступна". (без будь-якої додаткової інформації, відсутності невдалого запиту відстеження або запису журналу подій).
Нарешті, це в основному працює
Увімкнення журналу слідів ETW, як описано Тобіасом, показало, що коренева помилка була такою:
Запит (ідентифікатор запиту 0xF500000080000008) відхилений через причину: UrlGroupLookupFailed.
Наскільки я розумію, це означає, що http.sys не в змозі направити запит до будь-якої доступної кінцевої точки.
Перевірка зареєстрованих кінцевих точок за допомогою netsh http show urlacl
показала, що дійсно щось зареєстровано для порту 443:
Reserved URL : https://IP:443/
User: NT AUTHORITY\NETWORK SERVICE
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;NS)
Видалення цього файлу netsh http delete urlacl url=https://IP:443/
остаточно ввімкнуло мою прив'язку SSL.
logman start httptrace -p Microsoft-Windows-HttpService 0xFFFF -o httptrace.etl -ets
2) зробити запит 503 3) зупинити журнал слідів. запустити: logman stop httptrace -ets
4) записати журнал слідів у файл. запустити: tracerpt.exe httptrace.etl -of XML -o httptrace.xml
5) перевірити причину 503 у файлі xml та опублікувати його тут.