Включение SSL в asp.net 4.0 и IIS 7.5

#asp.net #ssl

#asp.net #ssl

Вопрос:

Я создал asp.net Проект 4.0. Я хочу включить SSL для этого. Нужно ли мне сопоставлять этот веб-проект с новым веб-сайтом в IIS. Когда я пытаюсь создать новый веб-сайт, я получаю:

Привязка ‘*:80:’ назначена другому сайту. Если вы назначите такую же привязку к этому сайту, вы сможете запустить только один из сайтов. Вы уверены, что хотите добавить эту дублирующуюся привязку?

Я пытаюсь следить за следующими сообщениями:

 http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx

http://mscrm4humans.wordpress.com/2010/06/24/enabling-ssl-on-iis-7-0-using-self-signed-certificates/
  

мой IIS — 7.5.7600….
Я совершенно новичок в SSL в asp.net . Пожалуйста, предложите решение этой проблемы.

Ответ №1:

Хотя можно настроить заголовки хостов для выполнения своих задач, самый простой способ — настроить ваш новый сайт с другим IP-адресом.

Добавьте новый IP-адрес на сервер, затем настройте привязку для нового сайта к новому IP-адресу на портах 80 и 443. Настройте пул приложений для запуска с использованием .NET 4, затем для удобства вы могли бы добавить правило URLRewrite для передачи всего трафика, отличного от SSL, на HTTPS, вставив это в свой web.config:

 <system.webServer>
      <rewrite>
        <rules>
            <rule name="Redirect to HTTPS" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="^OFF$" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
  

Или, если вы хотите принудительно использовать SSL, просто отметьте Force SSL опцию в IIS для сайта.

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

1. Это правило не включает каталоги, localhost/myapp /Test.aspx перенаправляет на localhost / Test.aspx Пожалуйста, помогите, как включить в него каталоги?

Ответ №2:

Похоже, у вас уже есть настройка сайта на порту 80. Вероятно, в вашем IIS установлен веб-сайт по умолчанию. Если вы не используете этот сайт, вы можете удалить его, прежде чем следовать инструкциям в блоге Скотта Гатри, и это должно устранить проблему.

Если вы используете веб-сайт по умолчанию, измените порт вашего нового сайта на 81 при его создании. Вы можете изменить порт на экране, показанном на втором изображении в сообщении в блоге Скотта Гатри.

Если вы хотите предотвратить попадание любого трафика, отличного от ssl, на ваш новый сайт, вам следует удалить привязку к порту 80 (или 81) после завершения всех настроек.

Ответ №3:

Для использования SSL необходимо:

  • Создайте отдельный веб-сайт в IIS
  • У этого веб-сайта должен быть отдельный IP-адрес, который будет привязан к порту 443

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

Ознакомьтесь с этой статьей для получения дополнительной справки:

http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis-7/

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

1. Это возможно только через интерфейс управления IIS. Для этого можно настроить заголовки хостов: sslshopper.com/article-ssl-host-headers-in-iis-7.html

2. Um, no. Связанная статья полезна, но ваш ответ демонстрирует непонимание. Вам не нужен отдельный IP-адрес (или имя хоста), 443 это просто стандартный порт по умолчанию. Вы можете использовать, например, порт 5555 и выполнять запросы типа: https://hostname:5555/appname В размещенной вами ссылке ничего не говорится об отдельном IP-адресе. Я думаю, вас смущает необходимость создания отдельного «веб-сайта»; веб-сайты привязаны к определенному порту (портам). В противном случае, если бы два веб-сайта были активны и прослушивали один и тот же хост и порт, то запросы к этому хосту: порт (он же «сокет») были бы неоднозначными.