gpt4 book ai didi

oracle - 通过 SSL (PROTOCOL=TCPS) 使用 Oracle 数据库的 Tomcat JDBCRealm

转载 作者:行者123 更新时间:2023-11-28 23:51:40 26 4
gpt4 key购买 nike

我正在尝试在 tomcat 中实现 JDBCRealm(如 http://tomcat.apache.org/tomcat-4.1-doc/realm-howto.html#Configuring%20a%20Realm 中所述)以再次检查 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

我在 JKS 商店中导入了我在 Tomcat 中配置的证书,如下所示:

没有成功。

我不是 Tomcat 的专家(更多的是数据库)。我将不胜感激任何帮助或为我指明正确的方向。提前致谢!

最佳答案

错误似乎表明 SSL 证书不受信任。

我建议确认你的信任库中确实有证书(JDK 中有一个命令行工具可以列出信任库内容,你可以谷歌它)然后在 Tomcat 启动脚本中添加以下参数:

javax.net.ssl.trustStore=<path to trust store>

关于oracle - 通过 SSL (PROTOCOL=TCPS) 使用 Oracle 数据库的 Tomcat JDBCRealm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7890439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com