IIS中.NET应用HTTP转HTTPS重定向端口异常问题求助
解决方案
问题原因
当前IIS重定向规则使用{HTTP_HOST}变量,该变量包含原HTTP请求的端口(8282),导致重定向后的URL为https://xxx:8282——但8282端口未配置HTTPS绑定,因此浏览器返回SSL协议错误。
修复方案1:修改IIS重写规则
将重定向URL中的{HTTP_HOST}替换为{SERVER_NAME}:8283({SERVER_NAME}仅包含主机名,不带端口),确保请求重定向到正确的HTTPS端口:
<rewrite> <rules> <rule name="HTTPS force" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{SERVER_NAME}:8283/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite>
修复方案2:调整.NET HTTPS重定向配置(可选)
如果希望通过代码层面实现重定向,需完成以下两步:
- 在
appsettings.json中添加正确的HTTPS端口配置:
{ "https_port": 8283 }
- 暂时禁用IIS端的重写规则(避免规则冲突),测试代码层面的重定向是否生效。
注意:在IIS托管场景下,IIS重写规则优先级高于.NET内置的HTTPS重定向中间件,建议优先使用IIS规则实现需求。
内容的提问来源于stack exchange,提问作者user21641787
相关产品推荐
相关产品推荐

