2

平文の http jboss(tomcat) の SSL フロントエンドとして Apache をセットアップしました。

<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 で ssl をセットアップせずに、Tomcat に apache から https を使用するように指示できますか? または、Apache と Tomcat の両方で ssl をセットアップするのに最適な組み合わせはありますか?

ダークが指摘したように解決策を試しましたが、まだ機能していません。

サーバー.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

ブラウザに送り返す前に?

事前にThx

4

1 に答える 1

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、およびスキームとセキュアです。

たとえば、http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2007800のオプション 4 と 3 を参照してください。

于 2012-07-13T15:24:13.700 に答える