私の質問を要約すると:
Jbossの前にApacheWebサーバーがあります。以下は、Httpdconfのssl部分です。
ProxyRequests Off
SSLProxyEngine on
SSLCertificateFile
/FinMgmt/deploy/https/certs/webserver/fm.insurance.co.uk_a_cert.pem
SSLCertificateKeyFile
/FinMgmt/deploy/https/certs/webserver/fm.insurance.co.uk_a_key.pem
SSLCACertificateFile
/FinMgmt/deploy/https/certs/fm.insurance.co.uk_CA_cert.pem
SSLVerifyClient optional_no_ca
SSLOptions +ExportCertData
ProxyPass /webapp1 https://fm.insurance.co.uk:8443/webapp1
ProxyPassReverse /webapp1 https://fm.insurance.co.uk:8443/webapp1
ProxyPass /webapp2 https://fm.insurance.co.uk:8443/webapp2
ProxyPassReverse /webapp2 https://fm.insurance.co.uk:8443/webapp2
以下は、jbossserver.xmlのssl部分です。
<!-- SSL/TLS Connector configuration using the admin devl guide keystore clientAuth=false -->
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="500" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="${jboss.server.home.dir}/conf/server.keystore"
keystorePass="glamdev"
truststoreFile="${jboss.server.home.dir}/conf/server.truststore"
truststorePass="passwd"/>
私の理解によると、ApacheはSSLVerifyClient option_no_caとの双方向相互認証を使用するように構成されています。これは、クライアントが証明書を提供する場合と提供しない場合があることを意味します。
これで、jbossは一方向SSL認証に設定されました。私が理解しているのは、ブラウザがリクエストapacheを送信すると、apacheは証明書で応答し、ブラウザはルートCAを使用して認証を試みるか、ユーザーに保存を求める例外をスローすることです。
また、apacheがリクエストをjbossにルーティングする場合、ここでapacheはクライアントとして機能し、jbossはSSLサーバーとして機能します。jbossはキーストアから証明書を送信します。これは、SSLCACertificateFileディレクティブを使用してApacheによって検証されます。
また、jbossがそれ自体にリダイレクトする必要がある場合は、proxyPassReverseを設定したため、リバースプロキシを経由する必要があります。その場合、jbossはSSLクライアントとして機能し、Apache httpはSSLサーバーとして機能し、Apacheはjbossが使用して検証する証明書を送信します。 trustoreのCA証明書。私は設定ファイルを解釈するのに正しいですか?
また、SSLVerifyClientでのoptional_no_caの使用を正確に理解していません。apacheはブラウザーに証明書を要求するかどうか、またはブラウザーによって異なりますか?
実際、私はこのアプリケーションをドキュメントなしで継承しており、それを理解するために一生懸命努力しています。