我们已将Apache设置为普通http jboss(tomcat)的ssl前端
<VirtualHost *:5555>
ServerName my.server.com
SSLEngine on
SSLCertificateFile /x.crt
SSLCertificateKeyFile /x.pem
SSLProxyEngine on
...
...
ProxyPass / http://my.server:8080/
ProxyPassReverse / http://my.server.com:8080/
</VirtualHost>
在我们的jsp中我们有类似的东西:
<link href="/css/my.css" rel="stylesheet" type="text/css">
从
加载页面时https://my.server.com:5555
浏览器告诉我们这个页面有不安全的内容,因为它会从
加载csshttp://my.server.com:5555/css/my.css
我不想在href中使用绝对URL。我能以某种方式告诉tomcat在没有tomcat的设置ssl的情况下从apache使用https吗?或者是在Apache和Apache中设置ssl的最佳组合。 Tomcat的?
我已经尝试过Dirk指出的解决方案,但它仍然没有用。
server.xml中
<Connector port="8080" protocol="HTTP/1.1" enableLookups="false" proxyPort="5555" scheme="https" secure="true" />
我仍然收到有关不安全内容的错误。是因为struts 1.1不使用request.getScheme(),还是因为Apache和Tomcat之间的通信是普通的http和Apache认为
<link href="/css/my.css" rel="stylesheet" type="text/css">
应该从
下载http://my.server.com:5555/css/my.css
在将其发回浏览器之前?
提前谢谢
答案 0 :(得分:3)
我猜这个问题是你的(tomcat)服务器认为它仍然存在于http地址(你可以通过查看标题和HTML来确认)。
因此它在页面中包含对http地址的引用,不知道https版本中的请求。
假设您想要所有流量https(并且http路径被阻止和/或tomcat绑定到localhost) - 您想要检查http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html如何告诉tomcat它不是生活在地址它可以看到 - 但是在地址上你从apache(即前门)暴露在互联网上。
你所追求的是proxyName,proxyPort以及scheme和secure。