0

( 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の専門家ではありません(データベースの専門家です)。私はどんな助けにも感謝するか、私を正しい方向に向けます。前もって感謝します!

4

1 に答える 1

0

エラーは、SSL証明書が信頼されていないことを示しているようです。

トラストストアに実際に証明書があることを確認し(JDKにはトラストストアのコンテンツを一覧表示するコマンドラインツールがあり、Googleで検索できます)、Tomcat起動スクリプトに次のパラメーターを追加することをお勧めします。

javax.net.ssl.trustStore=<path to trust store>
于 2011-10-25T14:09:38.597 に答える