У меня частный случай: на одном IIS есть сайты:
sub.domain.com - у него http на 80 и https на 443. Он отлично работает с вашим способом перенаправления с http на https
<configuration> <system.webServer> <rewrite> <rules> <rule name="HTTPS force" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
http://sub.domain.com:5000 и https//sub.domain.com:5001 . Тот просто отказывается переходить с http на https на нужный порт. Он может направлять с http://sub.domain.com:5000 на https://sub.domain.com:5000 вместо https://sub.domain.com:5001. Если мы не очистим данные о просмотре, он будет работать только один раз с http://sub.domain.com:5000 на https://sub.domain.com:5001. Правилу нравится
<rule name="HTTP to HTTPS on different SSL Port" enabled="true" stopProcessing="true"> <match url="(.*)" ignoreCase="true" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> <add input="{HTTPS}" pattern="off" /> <add input="{HTTP_HOST}" pattern="([^/:]*?):[^/]*?" /> </conditions> <action type="Redirect" url="https://{C:1}:5001/{R:0}" appendQueryString="false" /> </rule>
Итак, мой вопрос заключается в том, как я могу перенаправить http://sub.domain.com:5000 на https://sub.domain.com:5001 успешно без очистки данных просмотра и т. д.?
ОБНОВЛЕНИЕ:
После того, как я зарегистрировал запрошенный журнал с ошибкой, я кое-что нашел. У меня есть 18 файлов в FailedReqLogFiles\W3SVC4
. Каждый из них имеет другой requestURL.
- Первый —
http://somedomain.com:5000/
, код состояния 301; - Второй —
https://somedomain.com:5001/
, код состояния 200. - Третий —
https://somedomain.com:5001/inline.e576fger98965b3219.bundle.js
, код состояния 200. - Четвертый —
https://somedomain.com:5001/polyfills.3bed24531fd9085545fdw.bundle.js
, код состояния 200. - Так далее.....
- Последний (18-й)
https://somedomain.com:5001/assets/images/action,jpg
.
Если я посмотрю на узлы GENERAL_ENDPOINT_INFORMATION на вкладке «Сведения о запросе». В каждом файле журнала отображается Failed To Complete
.
ВАЖНО:
Это ядро .net плюс угловое приложение. Я не уверен, должен ли я настраивать ssl и перенаправлять https в сторону angular, а не в IIS или в обе стороны?
Strict-Transport-Security
заголовки ответа http? Это да, тогда это может объяснить, почему это срабатывает один раз после очистки кеша. en.wikipedia.org/wiki/HTTP_Strict_Transport_Security - person Stanislav Berkov   schedule 26.08.2020Strict-Transport-Security: max-age=2592000
- person Bigeyes   schedule 26.08.2020X-Powered-By: ASP.NET
. - person Bigeyes   schedule 26.08.2020