2個步驟就完成設定 IIS 自動由 HTTP 轉址至 HTTPS

最近遇到公家機關的客戶,希望將原本交由我們維護的 HTTP 網站,轉成 HTTPS 網站。因為上級機關要求所有網站都必須更改為 HTTPS 安全性較高的網站。

在完成相關 SSL 憑證採購、簽發,以及在他們網站主機的IIS設定好HTTPS網站後,這個部分可以參考另一篇「5個步驟完成 IIS7.5 安裝 SSL 憑證,讓你擁有 HTTPS 網站」文章。

他們又提出希望能「自動從原來的 HTTP 網址網站,轉到新的 HTTPS 網站」,OK!客戶就是老大,既然提出需求,就要使命必達!

如何設定 IIS 自動由 HTTP 轉址至 HTTPS 呢?

首先,當然不能使用倒數一段時間後,再利用 JavaScript location.href 或 <meta http-equiv="refresh" content="0;url=https://yourname.com" /> 或程式 Response.Redirect 語法來轉向 HTTPS 做法。

因為,這不是客戶要的,它們希望的是:

使用者一上線就將連到 HTTP 舊網址的使用者轉到 HTTPS 新網址,不需將 HTTP 完整路徑對應成 HTTPS 版本。基於導向入口網頁不需完整對應的單純需求。

不用等待後轉址...

也不用轉到相對應舊網址的新網址...

有不少人建議使用 URL Rewrite 模組解決,但是這也不適用這個專案,因為這個專案可不是只有一個網站,原因就不在此多贅述了,總之一言難盡!

後來,終於找到一個去 IIS 7.5 直接設定,就可以達到從原本 HTTP 舊站自動轉址到 HTTPS 網站的目的,接下來,我們就將相關步驟貼上來,作為日後、以及大家有需求者的參考。

 

1. IIS 設定「SSL 設定 / 需要 SSL」

● 點選「開始」,再選取「管理工具」,接著選取「網際網路資訊服務 (IIS) 管理員」(IIS7.5 管理介面)。

● 點選「要指定的站台」並於中間視窗點選「SSL 設定」。

● 點選後,會開啟「SSL 設定」視窗首先在 IIS 管理員確認勾選「SSL設定 / 需要SSL」,如此連上 HTTP 將得到 HTTP 403.4 錯誤。

● 勾選後,在右側「動作」視窗,點選「套用」即可。

 

2. 自訂 IIS 「錯誤網頁」

● 回到上一步的視窗,尋找「錯誤網頁」雙擊開啟。

● 回到上一步的視窗,尋找「錯誤網頁」雙擊開啟。

● 「錯誤網頁」設定視窗,點擊右方「動作」視窗的「新增」,「新增自訂錯誤網頁」如下列範例截圖,新增確定後,就會看新增一條錯誤狀態碼。

● 在「新增自訂錯誤網頁」指定 403.4 錯誤訊息網頁:

● 指定自訂錯誤網頁時使用「回應 302 重新導向」並輸入 https: 版首頁。

註:

搜尋網路相關文章,有人提到這方法還有一個小瑕疵,它傳回的是 302(暫時搬移) 不是 301(永久遷移),可能影響搜尋引擎判斷。QQ...

但是據說:

1. 如果原本 HTTP 網址就沒有相關網頁內容,不致有被 Cache 住,而造成遲遲沒更新的結果

2. 由於業界太多人把 302 當 301 用,Google 已經聰明到將 302 視為 301。:D

一併提供給大家參考,本專案剛好沒有就有內容網頁要對應,也不太需要考慮 SEO 需求,因此,不用煩惱,直接就應用了。

 

  • Top