IIS通过web.config使http跳转到https
发布:2020-06-17
什么是https?https与http有什么不同?
http(Hyper Text Transfer Protocol)协议是超文本传输协议,用于在Web浏览器和服务器之间传递信息,http协议以明文方式发送内容,不提供任何方式的数据加密,数据在传输过程中容易被攻击者监听、截取和篡改。
而https(Hyper Text Transfer Protocol over Secure Socket Layer)是安全套接层超文本传输协议,为了数据传输的安全,https在http的基础上加入了SSL协议,可以使数据进行加密传输,还能验证网站身份,相当于http的升级版,比http协议安全。
https协议需要到证书颁发机构CA申请SSL证书,而http不用申请SSL证书。
那么,在IIS中如何通过web.config使http跳转到https呢?
1、下载并安装URL重写模块(Microsoft URL Rewrite Module 2.1):
中文32位:https://download.microsoft.com/download/D/8/1/D81E5DD6-1ABB-46B0-9B4B-21894E18B77F/rewrite_x86_zh-CN.msi
中文64位:https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi
2、在IIS对应站点的SSL设置中不要勾选“要求 SSL”,如图:
3、在Web.config中添加(注意,添加位置在:
<system.webServer></system.webServer>
之间。):
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectTypes="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>