Назад | Перейти на главную страницу

IIS7 https SSL, https перенаправляет обратно на http. Sitefinity

Во-первых, я новичок в IIS7, так что это, наверное, что-то очевидное.

У нас есть новый сервер с сертификатом SSL, уже установленным нашей хостинговой компанией и видимым в диспетчере IIS на узле сервера.

В привязках нашего сайта у нас есть порт 443, настроенный нормально с правильным сертификатом (насколько я могу судить).

Проблема в том, что если вы подключаетесь через браузер с использованием https, вы мгновенно перенаправляетесь обратно на http (а затем видите сайт в порядке). Мы пытаемся разместить весь сайт за ssl, но если в разделе «ssl settings» мы отметим «require ssl», ваш браузер все равно будет перенаправлен на http, а затем сразу же получит отказ в соединении! (что имеет смысл)

Я запустил инструмент диагностики SSL IIS (от http://blogs.msdn.com/b/vijaysk/archive/2009/09/20/ssl-diagnostics-tool-for-iis-7.aspx ), и все выглядит нормально, но я не совсем уверен, на что я смотрю. Я отправлю журнал только по запросу, поскольку он изобилует ссылками на серверы, которые мне придется отфильтровать в целях безопасности.

Заключительные детали - мы используем ASP.Net и используем формы авторизации, если это имеет значение. Сервер - Windows 2008 SP2 64bit.

В настройках IIS какой документ по умолчанию находится в корне? также может быть возможно, что документ по умолчанию имеет перенаправление обратно на http, чтобы проверить исходный код индексного файла? возможно, на стадии разработки перед живым? Эта проблема возникала всегда или возникала недавно при добавлении SSL?

Вероятно, вам следует удалить привязку http на рассматриваемом веб-сайте, если вы еще этого не сделали. Щелкните веб-сайт, затем щелкните «Привязки» в правой части экрана и просто оставьте https там.

Оказывается, проблема была в нашей CMS-системе Sitefinity. У него есть свойство страницы, называемое «использовать SSL», и, если оно не установлено (по умолчанию), он будет явно перенаправлять защищенные запросы обратно в незащищенные. Чтобы исправить это, в web.config измените

<cms defaultProvider="Sitefinity" pageExtension=".aspx" disabled="false" pageEditorUIMode="Overlay" sslRedirection="ToHttpsOnly">

Важный момент: sslRedirection = "ToHttpsOnly"

Я бы рекомендовал использовать Fiddler с удаленного компьютера ( http://www.fiddler2.com/fiddler2/ ) и увидеть последовательность выполняемых запросов. Скорее всего, что-то в вашем приложении возвращает ему 301 или 302 (перенаправление).

Также на сервере попробуйте включить отслеживание неудачных запросов с настройкой по коду состояния 100-600 и записать все содержимое. Затем отправьте запрос, вы увидите на сервере файлы журнала, которые точно скажут вам, что происходит: http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/