2017-09-11 76 views
0

我發現這樣的問題沒有答案(特別是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/homepagehttp://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我得到的安全消息。我在做什麼這個規則錯了?

回答

0

問題是您的SSL僅適用於*.mydomain.com。當您訪問https://myserver時,它將返回證書錯誤,因爲您的證書對該域無效。

有關SSL連接的過程中的步驟更好地理解: enter image description here

在你的情況下,問題是執行步驟2和3

+0

我明白請求的URL和SSL證書之間的不匹配之間,但我m試圖通過讓不包含域的請求轉發到包含域的等效URL以便它們與證書相匹配來處理該問題。你是否說如果請求通過HTTPS傳入,這是不可能的? –