Вы можете настроить сайты в IIS на требуемые сертификаты, но это будет A) генерировать ошибку, если кто-то не посещает https и B) требуют, чтобы все страницы использовали https. Итак, , что не будет работать. Вы можете поместить фильтр в IIS, который проверяет все запросы и перенаправляет их как вызовы https, если они находятся в вашем списке шифрования. Очевидным недостатком здесь является необходимость обновлять список страниц каждый раз при добавлении новой страницы (например, из файла XML или базы данных) и перезапускать фильтр.
Я думаю, что вы, вероятно, правы в создании кода на страницах, для которых требуется https, который перенаправляется на версию https, если они поступают через http. Что касается вашей ошибки сертификата, вы можете перенаправить с полным путем (включая www) вместо относительного пути для устранения этой проблемы. Если у вас есть какие-либо вопросы о том, как определить, использует ли вызов https или как получить полный путь к текущему запросу, пожалуйста, дайте мне знать. Оба довольно простые, но у меня есть образец кода, если он вам нужен.
ОБНОВЛЕНИЕ - Джош, сертификаты, которые обрабатывают несколько поддоменов, называются подстановочными знаками. Проблема в том, что они довольно дороже стандартных сертификатов.
ОБНОВЛЕНИЕ 2: Еще одна вещь, которую следует учитывать, - использовать главную страницу или производный класс для страниц, которым необходим SSL. Таким образом, вместо дублирования кода на каждой странице вы можете просто объявить его как тип SSLPage (или использовать соответствующую главную страницу) и иметь класс Master/Parent обработать перенаправление. Опять же, вам нужно будет обработать некоторые URL-адреса, если вы примете этот подход, но это довольно тривиально.
Да, я придерживаюсь такого же подхода. У меня есть ключ EnableSsl в моем файле web.config, который я могу отключить и включить в зависимости от того, в какой среде я нахожусь. У меня также есть ключ SecurePages с разделителями каналов, с которым я могу легко добавлять/удалять сайты. –
Другой способ вместо разделения по протоколу Pipe (Предполагая, что вам не нужно это менять после развертывания) было бы определение базовой страницы, которая выполняет проверку, тогда любая страница, которую вы хотите гарантировать, всегда будет наследоваться с этой страницы. Вы также можете использовать атрибуты. – JoshBerke
Да, но я бы предпочел сохранить одну базовую страницу, и мне хотелось бы динамически установить страницы на ssl или нет без перекомпиляции. –