( http://tomcat.apache.org/tomcat-4.1-doc/realm-howto.html#Configure%20a%20Realmで説明されているように)TomcatにJDBCRealmを実装して、Oracleデータベースに対してクレデンシャルをチェックしようとしています。問題は、データベースがSSLを介して通信することです。そこで、TCPSを使用するようにリスナーを構成しました。そのように:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<hostname>)(PORT=1521)))<br>
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<hostname>)(PORT=1512)))
生成された証明書など。sqlplusまたはWLSからtcpsを使用してデータベースに接続するのに問題はありません(そこで接続プロパティoracle.net.ssl_cipher_suites=(SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,SSL_DH_anon_WITH_RC4_128_MD5,SSL_DH_anon_WITH_DES_CBC_SHA)
を問題なく使用できます)。
ただし、JDBCRealmをTCPS経由でデータベースと連携させることはできません。レルムを次のように構成する
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = <hostname>)(PORT = 1512)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <service name>)))" connectionName="<login>" connectionPassword="<password>" userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name" />
と、次のエラーが発生します。
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
次のようにTomcatで構成したJKSストアに証明書をインポートしました。
成功しませんでした。
私はTomcatの専門家ではありません(データベースの専門家です)。私はどんな助けにも感謝するか、私を正しい方向に向けます。前もって感謝します!