これが私のユースケースです。
HTTPSリクエスト内で使用されるホスト名に応じて、JBoss 7を使用して2つの異なるWebアプリケーション(war)を提供したいと思います。
- https://app1.mydomain.com/にアクセスするとき、JBoss
app1.war
はSSL証明書「app1.mydomain.com」でサービスを提供する必要があります - https://app2.mydomain.com/にアクセスするとき、JBoss
app2.war
はSSL証明書「app2.mydomain.com」でサービスを提供する必要があります
appX.war
各ホスト名のルートコンテキストとしてを使用することをお勧めします(https://appX.mydomain.com/index.htmlにアクセスするとファイルが使用されます)が、 httpsappX.war/index.html
://appX.mydomain.comにアクセスすることを受け入れることができます。 / appX /を使用してmy appX
(X
is1
または2
)にアクセスします。
さらに、その構成に単一のIPとポートを使用したいのですが、Appache HTTPDをプロキシとして使用しないと、これは不可能のようです(SOの回答とJBossフォーラムのスレッドによる) 。それは代替案ですが、私はそれを使用したくないと思います。
私はそれをstandalone
モードで(そして別のIPを使用して)構成しようとしました。これが私の抜粋ですstandalone.xml
:
...
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="app1.mydomain.com" native="true">
<connector name="https-app1" protocol="HTTP/1.1" scheme="https" socket-binding="app1-https" secure="true">
<ssl password="pass1" certificate-key-file="${jboss.server.config.dir}/cert/app1.mydomain.com.key" protocol="TLSv1" verify-client="false" certificate-file="${jboss.server.config.dir}/cert/app1.mydomain.com.crt"/>
</connector>
<connector name="https-app2" protocol="HTTP/1.1" scheme="https" socket-binding="app2-https" secure="true">
<ssl password="pass2" certificate-key-file="${jboss.server.config.dir}/cert/app2.mydomain.com.key" protocol="TLSv1" verify-client="false" certificate-file="${jboss.server.config.dir}/cert/app2.mydomain.com.crt"/>
</connector>
<virtual-server name="app1.mydomain.com" enable-welcome-root="false" default-web-module="app1">
<alias name="app1.mydomain.com"/>
</virtual-server>
<virtual-server name="app2.mydomain.com" enable-welcome-root="false" default-web-module="app2">
<alias name="app2.mydomain.com"/>
</virtual-server>
...
<interfaces>
<interface name="app1.mydomain.com">
<inet-address value="10.0.0.1"/>
</interface>
<interface name="app2.mydomain.com">
<inet-address value="10.0.0.2"/>
</interface>
...
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="app1-https" interface="app1.mydomain.com" port="443" fixed-port="true"/>
<socket-binding name="app2-https" interface="app2.mydomain.com" port="443" fixed-port="true"/>
...
しかし、それは期待どおりに機能していないようです...
- https://app1.mydomain.com/にアクセスすると、ウェルカムファイルが表示されます(これは属性
app1.war
によるものだと思います)default-virtual-server
- https://app1.mydomain.com/app1/にアクセスすると、404レポート(HTML本文コンテンツを含む)が表示されます。
- https://app1.mydomain.com/app2/にアクセスすると、ウェルカムファイルが表示されます。
app2.war
- https://app2.mydomain.com/、https://app2.mydomain.com/app1/、またはhttps://app2.mydomain.com/app2/にアクセスすると、JBossはHTTP「404NotFound」にのみ応答します。 "本文のHTMLコンテンツがないため、私のページは空白です。
誰かアイデアがありますか?
(その質問はJBossユーザーフォーラムにも投稿しました)