Я пытаюсь реализовать JDBCRealm в tomcat (как описано в 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)))
Сгенерированные сертификаты и т. д. У меня нет проблем с подключением к базе данных с использованием tcps из sqlplus или из WLS (я могу использовать свойство соединения 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 (больше в базах данных).Я буду признателен за любую помощь или указывать мне в правильном направлении. Заранее спасибо!