ресурсы на защищенном веб-сайте

#asp.net #https #look-and-feel

#asp.net #https #внешний вид

Вопрос:

У нас есть веб-сайт в домене, давайте назовем: http://website.com. Необходимо реализовать такой же внешний вид на другом веб-сайте (https://custom.website.com). Как мы можем видеть, 2-й находится в поддомене 1-го, но он защищен (использует https).

Для достижения одинакового внешнего вида на обоих веб-сайтах используются одинаковые библиотеки DLL. Эти библиотеки DLL содержат функциональные возможности для меню, JavaScripts и т.д.). Но второй веб-сайт использует изображения и некоторые CSS-файлы с первого. Например, для отображения «Logo.png» вместо обычного «~/Images/Logo.png» следующий путь к файлу отображается в формате HTML: «http://website.com/Images/Logo.png«

Все было сделано в локальной среде и работает идеально (http://localhost / упомянутый http://website.com).

Но, когда веб-сайт был развернут в «реальной» среде (разработки), мы получили сюрприз: IE уведомляет:

веб-страница содержит контент, который не будет доставлен с использованием защищенного HTTPS-соединения

Я вижу вариант решения проблемы: мы могли бы включить изображения на защищенный веб-сайт и использовать их локально, но в этом случае нам нужно будет выполнить повторное использование, если что-то изменилось на главном веб-сайте.

Вопрос: есть ли какой-либо обходной путь, как с защищенного веб-сайта мы могли бы использовать изображения, которые расположены на незащищенном.

Спасибо. Любые мысли приветствуются.

P.S. Я использую ASP.NET 3.5, веб-сайты размещаются под управлением Windows 2008

Ответ №1:

Вам также необходимо разместить свои изображения, CSS и скрипты (в более общем плане, все, что загружается с веб-страницы) на вашем HTTPS-сайте, чтобы избежать смешанного контента.

Ответ №2:

В зависимости от уровня безопасности и изоляции вы могли бы настроить общий виртуальный каталог для двух веб-сайтов, которые указывают на одно и то же физическое местоположение.

Например, создайте каталог по адресу C:inetpubshared-static и создайте виртуальный каталог /static под каждым веб-сайтом, на который указывает C:inetpubshared-static . Оттуда оба веб-сайта могут ссылаться на изображение, подобное ~/static/logo.png , если это необходимо для совместного использования контента. Когда в каталог помещается новый файл (или замененный файл), оба веб-сайта будут ссылаться на один и тот же файл.

Ответ №3:

Если вы можете включить поддержку https на главном веб-сайте, вы могли бы использовать https для URL-адресов изображений вместо http.

Альтернативой, как предлагали другие, является синхронизация изображений / или использование общего местоположения при их предоставлении.

Комментарии:

1. Основной веб-сайт не должен быть защищен.

Ответ №4:

Я вижу обходной путь:

на втором веб-сайте реализована функциональность, которая будет проверять (один раз в день или в час), являются ли собственные изображения последними, и обновлять их при необходимости…

Это требует некоторой работы, но с таким решением веб-сайт будет проще поддерживать.

Если вы видите лучший вариант, пожалуйста, дайте мне знать.

Спасибо.

Комментарии:

1. Честно говоря, я не очень хорошо знаком с IIS. Настройка Apache Httpd для обслуживания одного и того же статического содержимого из одного каталога на диске на двух разных виртуальных хостах (один для HTTP и один для HTTPS), безусловно, возможна. Я бы предположил, что один и тот же каталог может быть присоединен к двум разным местам аналогичным образом в IIS. Возможно, может помочь помещение этого содержимого в выделенный каталог, который вы бы обслуживали по общему пути (например, «/ static»).