擅长:python、mysql、java
<p>我相信,当Db2文档写到“客户机驱动程序将调用GSKit API来创建一个使用默认根证书填充的密钥数据库”时,这意味着动态创建的kdb将包含一些常见商业CA的证书,并且(如果指定)还将包含SSLServerCertificate指定的证书</p>
<p>由于您使用的是自签名证书,在这种情况下,CA证书将被忽略</p>
<p>如果您使用IBM的驱动程序连接到运行在Linux/Unix/Windows上的Db2服务器,并且希望加密连接使用目标Db2实例公钥作为加密的一部分,那么您必须以某种方式告诉Db2客户机该证书(包含Db2实例公钥)的位置</p>
<p>对于linux客户端,证书将位于静态创建的kdb(通过GSKit命令)中,或者位于使用SSLServerCertificate属性指定的动态创建的kdb中。对于在Microsoft Windows上运行的Db2客户机,如果Db2客户机配置为使用MS密钥库,则还可以从MS密钥库获取证书</p>
<p>ibm_db模块的源代码可在github上获得。但是,客户端SSL工作不是发生在ibm_db模块中,而是发生在(封闭源代码)Db2驱动程序以及GSKit的(封闭源代码)库中。要查看封面下发生的一些事情,可以跟踪CLI驱动程序。有关CLI跟踪的详细信息,请参阅联机Db2文档</p>