首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat JDBCRealm使用Oracle database over SSL (PROTOCOL=TCPS)

Tomcat JDBCRealm使用Oracle database over SSL (PROTOCOL=TCPS)
EN

Stack Overflow用户
提问于 2011-10-25 21:59:35
回答 1查看 2.4K关注 0票数 0

我正在尝试在tomcat中实现JDBCRealm (如http://tomcat.apache.org/tomcat-4.1-doc/realm-howto.html#Configuring%20a%20Realm中所述),以再次检查Oracle数据库的凭据。问题是,我希望数据库通过SSL进行通信。因此,我将侦听器配置为使用TCPS。就像这样:

代码语言:javascript
复制
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<hostname>)(PORT=1521)))<br>
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<hostname>)(PORT=1512)))

我从sqlplus或从WLS使用tcp连接到数据库没有任何问题(我可以在那里使用连接属性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:

<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" />

我收到以下错误:

代码语言:javascript
复制
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的专业人士(更擅长数据库)。我将非常感谢任何人的帮助或指引我正确的方向。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-25 22:09:39

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

我建议验证您的信任存储中是否确实有证书( JDK中有一个命令行工具可以列出信任存储内容,您可以在Google上搜索它),然后在Tomcat启动脚本中添加以下参数:

代码语言:javascript
复制
javax.net.ssl.trustStore=<path to trust store>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7890439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档