
Я настраиваю SSL-сертификаты в среде разработки, используя IIS 6 на W2k3.
У меня есть каталог под названием login с одной страницей login.asp
, которую я хотел бы просматривать только через SSL.
Итак, перед установкой или применением разрешений SSL страница доступна для просмотра через браузер. Я могу просматривать страницу, она перенаправляет и т. д., и все хорошо. Однако базовая аутентификация закодирована Base64, поэтому я хочу защитить трафик только с этой страницы.
Я создал фиктивный сертификат в makecert
, установил его и добавил в IIS. IIS счастлив, что ему доверяют. Я выбрал каталог login
и дочерние файлы для «Требовать канал SSL». Когда я обновляю свой браузер, login/login.asp
я получаю «404: Страница не найдена» в IE 8. Итак, здесь 2 проблемы
- Страница теперь недоступна для просмотра при использовании HTTPS.
- Им придется вручную вводить HTTPS (пока что это незначительное неудобство)
Если я отключу «Требовать канал SSL» в IIS, все снова заработает.
Какую часть процесса я упускаю, ведь я следовал нескольким руководствам по установке SSL-сертификатов, но все еще сталкиваюсь с этим препятствием?
решение1
Теперь, когда я изучил эту проблему гораздо более тщательно, я решил ответить.
Проблема в том, что страница теперь ожидает, что ее будут запрашивать только как HTTPS. Если вам нужно автоматически переключаться на HTTPS при запросе HTTP, я сделал это, принудительно направив все ошибки 401.3 (на вкладке Custom Errors сайта) на определенный URL, который затем изменил http:// на https:// для любого входящего запроса.
Просматривая статьи в Google, вы можете сделать это либо в ASP/.NET и т. д., либо в Javascript.
Также я обнаружил, что selfssl.exe
в IIS 6.0 Resource Kit гораздо удобнее для пользователя, чем makecert.exe
. Очень-очень прост в использовании.