2015-05-21 142 views
0

我試圖強制執行蔚藍的Java Web應用程序運行在Tomcat 1.7 HTTPS。 (使用門戶創建的應用程序wa) 我已將下面的web.config添加到站點/ wwwroot目錄。這通過https正確地重定向非http調用,但在應用程序內部,請求似乎具有http而不是https。Azure的Web應用程序不通過HTTPS方案,以Java Web應用程序

<configuration> 
<system.webServer> 
<handlers> 
    <add name="httpPlatformHandler" path="*" 
     verb="*" modules="httpPlatformHandler" 
     resourceType="Unspecified" /> 
</handlers> 

<httpPlatform processPath="%AZURE_TOMCAT7_HOME%\bin\startup.bat"> 
</httpPlatform> 
<rewrite> 
    <rules> 
    <rule name="Force HTTPS" enabled="true" stopProcessing="true"> 
     <match url="(.*)" ignoreCase="false" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 
</configuration> 

我認爲這可能是爲應用程序來顯示HTTP而不是HTTPS的標準行爲,但我肯定期待下面來呈現真實

HttpServletRequest request 
request.isSecure() //this should be true 
request.getScheme() //Ideally should be https but is http 

請問有什麼需要添加到我的web.config文件?

不知道,如果它使太大的區別,但我使用CA簽名的通配符證書,我還通過門戶網站上傳。這是明確的工作,因爲我無法在我的Web應用程序上進行HTTPS調用,並且在證書上傳之後,我能夠進行調用。

在此先感謝您的幫助。

+0

當您向您的網站發出https請求時會發生什麼?請求在您的應用程序中是否仍然顯示爲http? –

+0

沒有就算我打它直接是HTTP應用中,仍然顯示的是假當我打電話的isSecure() – Asrar

+0

是否正確HTTPS負荷,如果你運行你的本地計算機上的網站? –

回答

1

只是回答編輯配置的問題域,也有使用Java與Azure的應用程序服務的3種方法:

1)能夠通過門戶。上傳war文件時此方法非常棒,但無法更改Web容器的配置。

2)從市場/畫廊部署Tomcat或碼頭。當你這樣做你會得到你的空間,你可以編輯或改變你的心內容

3)如果需要上傳自定義應用程序,包括你自己的JVM Tomcat或碼頭的一個完整的安裝。如果你走這條路線,你需要記住一些在Azure文檔中描述的內容。

對於SSL,由於需要在App Service中支持多種框架,因此應用程序的上游支持SSL。您不需要在Tomcat中啓用HTTPS連接器,也不需要在本地設置信任存儲或任何這些有趣的事情。請使用此處的信息:http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure-ssl-certificate/爲您的網站啓用HTTPS。

+0

我覺得這是事實。不幸的是,我有20個站點部署,所以這將是一項相當艱鉅的任務。感謝您的幫助 – Asrar

相關問題