Я использую IIS 10.0.17763 и настроил HSTS для перенаправления HTTP на HTTPS. Он отлично работает при переходе с порта 80 на 443, но если указан другой порт, он все равно перенаправляется на 443 вместо исходного порта.
Я ввел http://site.mydomain.com:8080 и ожидал, что он перейдет на https://site.mydomain.com:8080. Вместо этого он перешел на https://site.mydomain.com без номера порта.
Есть ли способ сделать это только с помощью HSTS или мне нужно использовать правила перезаписи URL-адресов IIS?
Тогда можно ли указать соответствующий номер порта HTTPS при перенаправлении с использованием HSTS? Сайт использует несколько номеров портов, чтобы указать, какую базу данных использовать. Я предполагаю, что мне придется использовать правила перезаписи, которые я не использовал.





Документ RFC фактически запрещает любое сопоставление порта 80 с портом, отличным от 443.
https://www.rfc-editor.org/rfc/rfc6797#section-8.3
если URI содержит явный компонент порта «80», то UA ДОЛЖЕН преобразовать компонент порта в «443», или
если URI содержит явный компонент порта, который не является равное «80», значение компонента порта ДОЛЖНО быть сохранено; в противном случае,
Таким образом, у вас нет другого выбора, кроме как использовать порт 443.
Если у вас несколько сайтов на порту 443 и ограниченное количество IP-адресов, включите SNI (поскольку все современные веб-серверы изначально поддерживают это).
Используйте только стандартные порты и устанавливайте правила HSTS и перезаписи URL-адресов. Это обеспечивает лучший опыт для ваших конечных пользователей.
Поскольку HSTS не будет делать то, что мне нужно, я попробую использовать правила перезаписи. Спасибо.
HTTP/HTTPS работает не так. Вам всегда нужны два порта. Один для HTTP, другой для HTTPS. Вы не можете отправить простой HTTP-запрос на HTTPS-сервер или наоборот.