網頁

2021年12月13日 星期一

IIS HTTP轉HTTPS-以windows server 2022為例

本文僅適用於學校網站且安裝windows server及iis,一台網站主機,一個網站(以windows server 2022或2019實作為例)。
使用https必須有憑證。學校或單位如果有申請校內或網域內所有網站主機都含入的共用憑證,可以直接請相關人員從原始安裝憑證的伺服器匯出憑證(記得須是從原始申請、安裝憑證的伺服器匯出),然後再到自己的伺服器匯入即可。如果沒有憑證也可以到G C P政府憑證網申請免費的憑證。IIS匯入的憑證檔須是有含私密金鑰的.pfx檔。

IIS HTTP轉HTTPS步驟:
•申請或取得憑證
•匯入憑證
•繫結 憑證
•設定HTTP轉HTTPS 有二種做法,請依需求擇一使用。
1.使用 URL Rewrite 模組:有安裝URL Rewrite 模組的伺服器,於伺服器收到瀏覽請求時,發現URL(網址)已異動, 就幫忙訪問異動後的URL,並將結果回傳給發出請求的瀏覽器。瀏覽器上仍顯示舊的URL
2.自訂 IIS 「錯誤網頁」URL Redirect:設定IIS 「錯誤網頁」403.4狀態碼,回應302重新導向至絕對URL,當伺服器收到瀏覽請求時,發現URL已經變動,伺服器會將異動後的URL回傳給瀏覽器(301 or 302),瀏覽器重新發送請求至異動後的URL。URL Redirect會由瀏覽器幫忙轉址到新的URL,所以瀏覽器上會顯示新的URL。

IIS匯入憑證:
開始->windows 系統管理工具->IIS

打開 IIS,選取 IIS 站台首頁->伺服器憑證。

->於右變 動作 列點選 匯入

點選事先做好或取得的 PFX 憑證檔。
輸入匯出 PFX 憑證檔的密碼。
->確定

於左邊選擇要繫結(綁定) HTTPS 的站台,Default Web Site。
選定站台後,在右邊動作列點選 繫結。

->要讓 HTTP 及 HTTPS 並存,選擇新增。
->類型選 HTTPS。連接埠自動帶入443
->主機名稱輸入網域名稱。
->選取已匯入的 SSL 憑證。
->確定。

->關閉
完成  繫結(綁定) HTTPS 的站台


安裝URL Rewrite
->點選右方"取得新的網頁平台元件"

->Install this extension

->開啟檔案

->打勾 I accept the terms in the license agreement
->install

->finish

開始->Microsoft Web Platform Installer

在右上角搜尋欄位中,輸入"URL Rewrite"
->按 Enter鍵 搜尋

->新增

->安裝

->我接受
安裝中

->完成
->結束

安裝完成後,一定要關閉Internet Information Services (IIS) 管理員,再重新開啟Internet Information Services (IIS) 管理員,才能IIS中找到"URL Rewrite"
->選取 IIS 站台首頁(注意:不是展開的Default Web Site)
->開啟URL Rewrite

->新增規則

->空白規則->確定

名稱:http to https(自己取名稱,看懂用途即可)
要求的URL:符合模式
使用:規則運算式
模式: (.*)

->點開「條件」
->「新增」


條件輸入: {HTTPS}
檢查輸入字串是否為:符合模式
模式: ^OFF$
->「確定」

點開「動作」
動作類型:重新導向
重新導向URL:https://{HTTP_HOST}/{R:1}
重新導向類型:永久 (301)
->設定完成,按右上角「套用」

完成URL Rewrite設定之後,在瀏覽器輸入這個網站的網址,就可以自動將 http:// 轉換為 https://  瀏覽。 

URL Rewrite的設定是儲存於C:\inetpub\wwwroot資料夾的web.config檔(如網站的資料夾不是C:\inetpub\wwwroot,則web.config檔位於該網站設定的資料夾。
可以不用開啟URL Rewrite設定 ,直接在web.config檔的 </defaultDocument>之後增加以下設定也可以。
        <rewrite>
            <rules>
                <rule name="RedirectTohttps" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{REQUEST_URI}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>


URL Rewrite的設定,網路上相關文章的設定範例於條件」 動作」兩大項,部分有差異,請讀者留意不同設定的影響。
例如  條件」:
模式: ^OFF$
模式: yourdomain.com
模式: off

例如「動作」:
重新導向URL:https://{HTTP_HOST}/{R:1}
重新導向URL:http://yourdomain.com/{R:1}

URL Rewrite 資料來源請參考:


自訂 IIS 「錯誤網頁」URL Redirect:
須已匯入憑證
開啟Internet Information Services (IIS) 管理員。
->展開 站台->Default Web Site
->開啟SSL設定


->勾選 需要SSL(Q)
勾選後用HTTP瀏覽網頁,會得到 HTTP 403.4 錯誤
略過:預設選項。如用戶端有提供憑證,不接受。一般網站選此項。
接受:用戶端有提供憑證,要接受用戶端憑證 ,先驗證用戶端識別,通過後,才允許用戶端存取內容。選此項。
需要:要求憑證先驗證用戶端識別,通過後,才允許用戶端存取內容。選此項。


於左邊選擇要設定的站台,Default Web Site。
->錯誤網頁

->新增

狀態碼輸入403.4
點選「回應 302 重新導向」,輸入要導向的 https: 版首頁。
->確定

設定完成。

自訂 IIS 「錯誤網頁」,資料來源請參考:

沒有留言:

張貼留言