
我有一個 IIS7/WinServer2008 配置,安裝了通配符 SSL 憑證 (*.mydomain.com)。 Web 伺服器擁有多個網站,每個網站都配置為透過相同 IP(稱為 IP1)的主機標頭進行路由。有些網站配置為使用 SSL,有些則沒有。
所以我有...
a.mydomain.com -> SSL
b.mydomain.com -> non-SSL
c.mydomain.com -> SSL
d.mydomain.com -> non-SSL
e.mydomain.com -> non-SSL
ETC...
對於上面的範例網站 A 和 C(SSL 網站),我希望將標準 HTTP URL 重新導向到 HTTPS。因此,在 IIS 的根目錄(紅色箭頭),我透過新增自訂狀態代碼 403.4 來配置錯誤頁面設定(請參閱下面的設定)。
redirectHttpToHttps.htm 檔案的內容是...
<html>
<head><title>Redirecting...</title></head>
<script language="JavaScript">
function redirectHttpToHttps()
{
var httpURL= window.location.hostname + window.location.pathname + window.location.search;
var httpsURL= "https://" + httpURL;
window.location = httpsURL;
}
redirectHttpToHttps();
</script>
<body>
</body>
</html>
然後,對於 A 和 C 站點,我將舊綁定替換為 SSL 綁定(專門路由到 IP1),並將 SSL 設定設為「需要 SSL」。
所以一切都很好。站點 A 重定向http://a.mydomain.com到https://a.mydomain.com同樣,站點 C 也做同樣的事情。
現在我有一個非通配符 SSL 憑證可以引入其中。這是針對綁定到 aaa.customerdomain.com 的網站。因此,我將憑證新增至了 IIS 伺服器,並變更了 aaa.customerdomain.com 網站的綁定,以使用新憑證和新 IP2 的 SSL 綁定。
所以現在如果我導航到https://aaa.customerdomain.com,一切都很好。但是,我不知道如何獲得http://aaa.customerdomain.com重定向到 SSL 版本。
有人可以幫助我以正確的方式配置 IIS,以便我可以完成所有這些工作嗎?
答案1
若要處理 IIS 中的各種類型的重定向,請嘗試使用 url 重寫模組
http://www.iis.net/downloads/microsoft/url-rewrite
然後將其新增至每個網站的 Web 配置中,以進行 http 到 https 重定向:
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions><add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
您也可以透過 IIS url 重寫模組介面使用 GUI 來完成此操作: