在JDBC代码中为DB2添加SSL服务器证书

lc8prwob  于 9个月前  发布在  DB2
关注(0)|答案(3)|浏览(162)

我试图通过SSL端口访问一个DB2示例。我有访问它所需的证书。但我不确定需要将其添加到哪个参数,以便连接成功。

Dataset<Row> data=session.read().jdbc("jdbc:db2://url:port/DBNAME"+":sslConnection=true"        
    , "db2inst1.JOB_STATUS", connectionProperties);

    connectionProperties.put("driver", "com.ibm.db2.jcc.DB2Driver");
    connectionProperties.put("url", "jdbc:db2://url:port/DBNAME");
    connectionProperties.put("user", "db2inst1");
    connectionProperties.put("password", "xxxxx");

字符串
连接到同一个DB2示例的python代码如下:

"DATABASE=DB_NAME;HOSTNAME=url;SSL=TRUE;PORT=port;PROTOCOL=TCPIP;UID=xxxx;PWD=xxxx;SSLServerCertificate=DB2Certificate.arm;;SECURITY=SSL"


我想提供DB2Certificate.arm作为jdbc url的参数,类似于SSLServerCertificate的python参数。

kupeojn6

kupeojn61#

下面的URL对你有用吗?
第一个月

hpcdzsge

hpcdzsge2#

herehere介绍了配置JRE/JVM以在Linux/Unix/Windows的Db2中使用SSL。
jdbc驱动程序的确切版本也会影响存在的配置选项(db2jcc4.jar、db2jcc.jar)。
请注意,配置JRE与配置CLI程序(如Python)是不同的活动。
建议你先试着按照文档来做。

t0ybt7op

t0ybt7op3#

我可以用sslConnection=true;sslCertLocation=...很好地连接,但由于某种原因(拜托,IBM!),您需要在每个值之后添加一个扩展名。
标签:jdbc:db2://192.168.1.69:50011/testdb:sslConnection=true;sslCertLocation=/tmp/db2.pem;
这不起作用(唯一的区别是缺少最后一个字符):jdbc:db2://192.168.1.69:50011/testdb:sslConnection=true;sslCertLocation=/tmp/db2.pem
异常:com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][10165][10051][4.32.28] Invalid database URL syntax: jdbc:db2://192.168.1.69:50011/testdb:sslConnection=true;sslCertLocation=/tmp/db2.pem. ERRORCODE=-4461, SQLSTATE=42815
这太傻了.

相关问题