我發現這樣的問題沒有答案(特別是this one)爲我工作,所以我在這裏。重定向到FQDN在IIS不工作
我們在Windows Server 2012 R2上運行IIS 8。我們在服務器上安裝了通配符證書(* .mydomain.com)。在默認網站上,我們有一個綁定來接受端口443上的傳入https請求。我有第二個網站設置了單個綁定,以接受端口80上的傳入http請求。
在後面的網站上,已經創建了一個URL重寫規則來重定向所有傳入的非HTTP流量到https://myserver.mydomain.com{REQUEST_URI}
,並且這個工作完美。如果我瀏覽到http://myserver.mydomain.com/homepage
或http://myserver/homepage
,我已成功重定向到包含完整域名的網站的HTTPS版本,因此它加載得很好。
如果我瀏覽到https://myserver.mydomain.com/homepage
,該網站也完美加載。
但是,我試圖在默認網站上創建另一個URL重寫規則,以便https://myserver/homepage
(注意:HTTPS,但完整域名被省略)的請求重定向到https://myserver.mydomain.com/homepage
。原因是隻有包含完整域時才能匹配SSL證書。現在,如果我輸入https://myserver/homepage
,我會收到安全警告(NET::ERR_CERT_COMMON_NAME_INVALID
)。
我已經創建了我認爲應該工作的規則,基於上面鏈接的答案,但它不起作用,我不知道爲什麼。我的規則是這樣的:
<rewrite>
<rules>
<rule name="Redirect to FQDN" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^myserver$" />
<add input="{HTTPS}" pattern="^ON$" />
</conditions>
<action type="Rewrite" url="https://myserver.mydomain.com/{R:1}" />
</rule>
</rules>
</rewrite>
即使有了這個規則,啓用後,當我瀏覽到https://myserver/homepage
我得到的安全消息。我在做什麼這個規則錯了?
我明白請求的URL和SSL證書之間的不匹配之間,但我m試圖通過讓不包含域的請求轉發到包含域的等效URL以便它們與證書相匹配來處理該問題。你是否說如果請求通過HTTPS傳入,這是不可能的? –