我们已经将Apache设置为纯超文本传输协议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
告诉我们此页面的浏览器有不安全的内容,因为它将从
http://my.server.com:5555/css/my.css
我不想在href中使用绝对URL。我可以以某种方式告诉tomcat使用apache中的https而不在tomcat中设置ssl吗?或者是在两个Apache中设置ssl的最佳组合
正如德克所指出的,我已经尝试了解决方案,但仍然不起作用。
服务器. xml
<Connector port="8080" protocol="HTTP/1.1" enableLookups="false" proxyPort="5555" scheme="https" secure="true" />
我仍然得到关于不安全内容的错误。是因为struts1.1不使用request. getSchem()还是因为Apache和Tomcat之间的通信是纯超文本传输协议,Apache认为
<link href="/css/my.css" rel="stylesheet" type="text/css">
应从
http://my.server.com:5555/css/my.css
在将其发送回浏览器之前?
提前感谢
我猜问题是您的(tomcat)服务器认为它仍然存在于超文本传输协议地址(您可以通过查看标头和超文本标记语言来确认这一点)。
因此,它在页面中包含对超文本传输协议地址的引用,而不知道请求来自https版本。
假设你想要所有流量https(超文本传输协议路径被阻止和/或tomcat绑定到localhost)-你想检查http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html如何告诉tomcat它不是生活在它可以看到的地址-而是在你从apache暴露给互联网的地址(即前门)。
您追求的是proxyName、proxyPort以及方案和安全。
例如见http://kb.vmware.com/selfservice/microsites/search.do?language=en_US备选案文4和3