Я полагаю, что когда в документации по Db2 написано «Драйвер клиента будет вызывать API GSKit для создания базы данных ключей, заполненной сертификатами root по умолчанию», это означает, что динамически созданный kdb будет содержать сертификаты для некоторых распространенных коммерческих CA и (если указано) также будут содержать сертификат, указанный в SSLServerCertificate.
Поскольку вы используете самозаверяющий сертификат, сертификаты CA в этом случае будут игнорироваться.
Если вы подключаетесь к Db2-серверу, работающему в Linux / Unix / Windows, используя драйверы IBM, и хотите зашифрованное соединение, которое использует целевой ключ Db2 publi c в качестве части о шифровании, то вы должны так или иначе сообщить клиенту Db2 местоположение этого сертификата (который содержит ключ publi c экземпляра Db2).
Для клиента linux этот сертификат будет либо в статически созданном kdb (с помощью команд GSKit), либо в динамически созданном kdb, как указано с помощью свойства SSLServerCertificate. Для Db2-клиента, работающего в Microsoft Windows, сертификат может быть дополнительно извлечен из хранилища ключей MS, если Db2-клиент настроен для его использования.
Исходный код для модуля ibm_db доступен на github. Однако работа SSL на стороне клиента происходит не в модуле ibm_db, а вместо этого в драйвере Db2 (с закрытым исходным кодом) вместе с библиотеками (с закрытым исходным кодом) для GSKit. Чтобы увидеть, что происходит под прикрытием, вы можете отследить драйвер CLI. Обратитесь к онлайн-документации по Db2 для получения подробной информации о трассировке CLI.