2015-05-21 114 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

相关问题