IIS通過web.config使http跳轉(zhuǎn)到https
發(fā)布:2020-06-17
什么是https?https與http有什么不同?
http(Hyper Text Transfer Protocol)協(xié)議是超文本傳輸協(xié)議,用于在Web瀏覽器和服務(wù)器之間傳遞信息,http協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,數(shù)據(jù)在傳輸過程中容易被攻擊者監(jiān)聽、截取和篡改。
而https(Hyper Text Transfer Protocol over Secure Socket Layer)是安全套接層超文本傳輸協(xié)議,為了數(shù)據(jù)傳輸?shù)陌踩?,https在http的基礎(chǔ)上加入了SSL協(xié)議,可以使數(shù)據(jù)進(jìn)行加密傳輸,還能驗證網(wǎng)站身份,相當(dāng)于http的升級版,比http協(xié)議安全。
https協(xié)議需要到證書頒發(fā)機(jī)構(gòu)CA申請SSL證書,而http不用申請SSL證書。
那么,在IIS中如何通過web.config使http跳轉(zhuǎn)到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對應(yīng)站點的SSL設(shè)置中不要勾選“要求 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>