将 http: 重定向到 https: 的 URL 重写规则不起作用 - IIS 10 - Asp.Net Framework 4.8 - Web 表单 - aspx

问题描述 投票:0回答:2

我们在“默认网站”下安装了旧版 ASP.NET Web 表单

.aspx
Web 应用程序。

考虑到“默认网站”下部署了其他 Web 应用程序,是否可以仅为此 Web 应用程序启用

https:

我在网上找到的所有说明都坚持在端口 443 上的 IIS 中创建

https:
绑定

挑战是,我想知道是否有其他可能的方法来为该一个 Web 应用程序启用

https:
,而不影响其他应用程序?

更新:06/06/2024

这是我的规则。

注意: 结果不会重定向到 https:请继续阅读...

inetpub/wwwroot/WebAppDemo/web.config file

<system.webServer>
    <rewrite>
        <rules>
            <rule name="WebAppDemoHttpsRedirect" stopProcessing="true">
                <match url="/WebAppDemo(/.*)?$" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}:9443{REQUEST_URI}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

这不会将 http: 请求重定向到 https: 我不确定我错过了什么。

这是我的设置。

Default Web Site 
    WebAppDemo
    Binding:
        http:80
    url:http://my-host-name.myorg.com/WebAppDemo/Default.aspx           
    
New Web Site
    WebAppDemo
    Binding:
        https:9443(custom port)
        hostName:my-host-name.myorg.com
        port:9443
        Server Name Identifier (Checkbox checked)   
    url:https://my-host-name.myorg.com:9443/WebAppDemo/Default.aspx
    
Note: in both sites, the "WebAppDemo" points to the same physical directory 
    
Open browser (chrome)
browse: http://my-host-name.myorg.com/WebAppDemo/Default.aspx
Result: Does not redirect to the https: site.
asp.net ssl iis https webforms
2个回答
4
投票

假设您使用的是IIS,证书与IP/端口绑定绑定,IP/端口绑定与网站绑定;您的情况的默认网站。

如果站点上的证书会破坏您正在使用的单个 IIS 站点上的应用程序,我会将这些应用程序拆分到它们自己的站点上。

仅在网站上拥有端口和证书不会强制网站和后续应用程序使用端口和证书,所以,真的,你应该没问题。


1
投票

正如 @Joe Davis 所说,没有直接的方法可以通过使用绑定将某个网站下的唯一一个应用程序设置为 https,但有一种解决方法,您可以尝试实现您的要求。

  1. 设置网站绑定如下(您可以根据自己的需求设置主机名ip)

enter image description here

2)然后使用iis url重写规则,它可以帮助您将特定应用程序url重定向到https,其他应用程序将仅使用http服务:

 <rule name="https redirect" stopProcessing="true">
         <match url="appname(/.*)?$" />
         <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
             <add input="{HTTPS}" pattern="^OFF$" />
         </conditions>
         <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
     </rule>
     <rule name="http redirect" stopProcessing="true">
         <match url="(.*)" />
         <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
             <add input="{HTTPS}" pattern="ON" />
             <add input="{REQUEST_URI}" pattern="/appname(/.*)?$" negate="true" />
         </conditions>
         <action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" />
     </rule>
© www.soinside.com 2019 - 2024. All rights reserved.