使用密钥库在非 Java Db2 客户机中配置 TLS 支持
您可以配置 Db2 数据库客户机 (例如 CLI , CLP 和 .Net 数据提供程序客户机) ,以支持传输层安全性 (TLS) 与 Db2 服务器进行通信。
关于本任务
此任务向您展示如何仅使用签名证书在非 Java Db2 客户端中配置 TLS 支持。 有关如何仅使用证书文件配置 TLS 支持的信息,请参阅 使用证书文件在非 Java Db2 客户机中配置 TLS 支持。
过程
示例
首先,对节点和数据库进行编目,以便客户机应用程序可以建立与它们的 TLS 连接:
catalog TCPIP NODE mynode REMOTE 127.0.0.1 SERVER 50001 SECURITY SSL
catalog DATABASE sample AS myssldb AT NODE mynode接下来,使用 ssl_clnt_keydb 和 ssl_clnt_stash 配置参数来指定客户机密钥数据库和隐藏文件。 将 ssl_clnt_keydb 配置参数设置为密钥数据库文件 (.p12) 的标准路径,将 ssl_clnt_stash 配置参数设置为隐藏文件的标准路径:
db2 update dbm cfg using SSL_CLNT_KEYDB /home/db2inst1/client.p12 SSL_CLNT_STASH /home/db2inst1/client.sth如果 ssl_clnt_keydb 或 ssl_clnt_stash 配置参数为空 (未设置) ,那么连接将失败并返回错误 SQL10013N ,带有令牌 IBM Global Security Kit (GSKit) 错误 :GSKit_return_code。
从 CLP 客户机连接到服务器:
db2 connect to myssldb user user1 using password您还可以使用以下语句从嵌入式 SQL 应用程序进行连接:Strcpy(dbAlias,"myssldb"); EXEC SQL CONNECT TO :dbAlias USER :user USING :pswd; 示例 2: 使用连接字符串从 CLI/ODBC 应用程序连接到数据库:
使用包含 SECURITY=SSL、 SSLClientKeystoredb 和 SSLClientStash 关键字来调用 SQLDriverConnect 函数 t。 例如:
"Database=sampledb; Protocol=tcpip; Hostname= myhost; Servicename=50001;
Security=ssl; SSLClientKeystoredb=/home/db2inst1/client.p12;
SSLClientKeystash=/home/db2inst1/client.sth;"示例 3: 使用 db2cli.ini 配置文件从 CLI/ODBC 应用程序连接到数据库:
使用 db2cli.ini 文件来设置所需的连接参数:
[sampledb]
Database=sampledb
Protocol=tcpip
Hostname=myhost
Servicename=50001
Security=ssl
SSLClientKeystoredb=/home/db2inst1/client.p12
SSLClientKeystash=/home/db2inst1/client.sth示例 4: 使用 SQLDriverConnect 函数 (CLI) 从 CLI/ODBC 应用程序连接到数据库:
使用 FileDSN CLI/ODBC 关键字来标识 DSN 文件,根据该文件构建连接字符串以连接到 Db2 服务器。 在 SQLDriverConnect 函数的连接字符串中指定 FileDSN 的值。
以下示例显示了 DSN 文件的编写方式:
[ODBC]
DRIVER=IBM DB2 ODBC DRIVER – DB2COPY1
UID=user1
AUTHENTICATION=SERVER
PORT=50001
HOSTNAME=myhost
PROTOCOL=TCPIP
DATABASE=SAMPLEDB
SECURITY=SSL
SSLClientKeystoredb=/home/db2inst1/client.p12
SSLClientKeystash=/home/db2inst1/client.sth示例 5: 使用 db2dsdriver.cfg 配置文件从 CLI/ODBC 应用程序或嵌入式 SQL 应用程序连接到数据库。
如果您正在运行 Db2 11.5.7 或更高版本,那么可以在 db2dsdriver.cfg 配置文件中包含 SSLServerCertificate 关键字以从嵌入式 SQL 应用程序进行连接。
以下示例显示如何编写 db2dsdriver.cfg 配置文件:
<dsn alias="sample" host="myhost.ibm.com" name="sample" port="50001">
<parameter name="SSLClientKeystoredb" value="/home/db2inst1/client.p12"/>
<parameter name="SSLClientKeystash" value="/home/db2inst1/client.sth"/>
<parameter name="SecurityTransportMode" value="SSL"/>
</dsn>