我们在“默认网站”下安装了旧版 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.
假设您使用的是IIS,证书与IP/端口绑定绑定,IP/端口绑定与网站绑定;您的情况的默认网站。
如果站点上的证书会破坏您正在使用的单个 IIS 站点上的应用程序,我会将这些应用程序拆分到它们自己的站点上。
仅在网站上拥有端口和证书不会强制网站和后续应用程序使用端口和证书,所以,真的,你应该没问题。
正如 @Joe Davis 所说,没有直接的方法可以通过使用绑定将某个网站下的唯一一个应用程序设置为 https,但有一种解决方法,您可以尝试实现您的要求。
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>