Oracle с PKI

Я пытаюсь подключиться к Oracle с помощью PKI. Я перехожу по этой ссылке

http://www.oracle.com/technetwork/topics/wp-oracle-jdbc-thin-ssl-130128.pdf

public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String addr = "DESKTOP-BH1RKUF";
    String service = "orcl";
    String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=" + addr + ")(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=" + service + ")))";
    Properties props = new Properties();
    // props.setProperty("user", "sys as sysdba");
    // props.setProperty("password", "password");
    props.setProperty("javax.net.ssl.keyStore", "/Users/user/Downloads/client/keystore.jks");
    props.setProperty("javax.net.ssl.keyStoreType", "JKS");

    props.setProperty("javax.net.ssl.trustStore", "/Users/user/Downloads/client/truststore.jks");
    props.setProperty("javax.net.ssl.trustStoreType", "JKS");
    props.setProperty("oracle.net.authentication_services", "(TCPS)");
    props.setProperty("oracle.net.ssl_version", "1.0");
    props.setProperty("javax.net.ssl.keyStorePassword", "Passw0rd");
    props.setProperty("javax.net.ssl.trustStorePassword", "Passw0rd");


    try (Connection conn = DriverManager.getConnection(url, props)) {
       System.out.println(conn.getClass());
    }
}

Я получаю эту ошибку: ORA-01017: неверное имя пользователя / пароль; вход в систему запрещен

Exception in thread "main" java.sql.SQLException: ORA-01017: invalid 
username/password; logon denied
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:461)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:394)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:386)
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1121)
at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:502)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:541)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:264)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:435)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1020)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:707)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:755)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:38)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:599)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.xyz.oracle.jdbc.pool.Test.main(Test.java:29)

См. Полный журнал: https://uploadfiles.io/qv4zg

Если я установлю пользователя и пароль, все будет нормально.


person RMS User    schedule 24.02.2018    source источник


Ответы (1)


Если вы пытаетесь следовать примеру № 4 упомянутого вами технического документа, например «ИСПОЛЬЗУЙТЕ SSL КАК УСЛУГУ АУТЕНТИФИКАЦИИ В БАЗЕ ДАННЫХ», тогда вы должны выполнить все шаги, включая «create user sslclient identified externally as 'CN=client_test,C=US';». У этого конкретного пользователя базы данных нет пароля. Единственный способ подключиться с использованием этого пользователя - предоставить действительный сертификат с правильным отличительным именем на клиенте. Я предполагаю, что вы этого не сделали, потому что вы упомянули, что это работает, если вы укажете пользователя и пароль.

person Jean de Lavarene    schedule 26.02.2018