使用证书文件在非 Java Db2 客户机中配置 TLS 支持

您可以配置 Db2 数据库客户机 (例如 CLI , CLP 和 .Net 数据提供程序客户机) ,以支持传输层安全性 (TLS) 与 Db2 服务器进行通信。

关于本任务

此任务向您展示如何仅使用签名证书在非 Java Db2 客户端中配置 TLS 支持。 要使用密钥数据库配置 TLS 支持,请参阅在非 Java Db2 客户端中使用密钥库配置 TLS 支持

SSLServerCertificate 关键字支持使用 base64 (PEM) 和二进制 (DER) 编码证书。 此外,包含 Db2 11.5.8 和 11.5.9 CSB 的版本支持使用包含多个 编码证书的证书捆绑包。 DT244530 支持使用包含多个 base64 编码证书的证书捆绑包。

SSLServerCertificate 参数不支持使用密钥数据库,包括 CMS (.kdb)、 PKCS12 或 Java KeyStore (.jks) 格式的数据库。

过程

  1. 获取 Db2 服务器的签名证书:
    • 如果服务器证书是自签名的,请获取提取的证书以分发给客户端
    • 如果服务器证书由第三方证书颁发机构(CA)签署,请获取 CA 的根证书。 这可以通过询问 CA 来完成,并且通常在签署服务器证书时提供。
      注: 为 CA 签名的服务器证书配置 TLS 支持时,必须在客户机上使用根证书。
  2. 在客户机应用程序的连接字符串或配置参数中,输入 SSLServerCertificate 关键字以指定自签名服务器证书或认证中心 (CA) 证书的标准路径。

示例

示例 1: 使用连接字符串从 CLI/ODBC 应用程序连接到数据库:

使用包含 SECURITY=SSLSSLServerCertificate 关键字的连接字符串来调用 SQLDriverConnect 函数。 例如:
"Database=sampledb; Protocol=tcpip; Hostname=myhost; Servicename=50001; 
Security=ssl; SSLServerCertificate=/home/db2inst1/servercert.pem;"

示例 2: 使用 db2cli.ini 配置文件从 CLI/ODBC 应用程序连接到数据库:

使用 db2cli.ini 文件来设置所需的连接参数:
[sampledb]
Database=sampledb
Protocol=tcpip
Hostname=myhost
Servicename=50001
Security=ssl
SSLServerCertificate=/home/db2inst1/servercert.pem

示例 3: 使用 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
SSLServerCertificate=/home/db2inst1/servercert.pem

示例 4: 使用 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="SSLServerCertificate" value="/home/db2inst1/servercert.pem"/>
   <parameter name="SecurityTransportMode" value="SSL"/>
</dsn>