Перенаправление на HTTPS с сохранением указанного номера порта

Я использую 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?

HTTP/HTTPS работает не так. Вам всегда нужны два порта. Один для HTTP, другой для HTTPS. Вы не можете отправить простой HTTP-запрос на HTTPS-сервер или наоборот.

Marc 09.04.2024 20:37

Тогда можно ли указать соответствующий номер порта HTTPS при перенаправлении с использованием HSTS? Сайт использует несколько номеров портов, чтобы указать, какую базу данных использовать. Я предполагаю, что мне придется использовать правила перезаписи, которые я не использовал.

Bob V 09.04.2024 20:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Документ 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 не будет делать то, что мне нужно, я попробую использовать правила перезаписи. Спасибо.

Bob V 09.04.2024 23:16

Другие вопросы по теме