This portal is to open public enhancement requests against products and services offered by the IBM Data & AI organization. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
Shape the future of IBM!
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Search existing ideas
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post your ideas
Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,
Post an idea
Upvote ideas that matter most to you
Get feedback from the IBM team to refine your idea
Specific links you will want to bookmark for future use
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
IBM Employees should enter Ideas at https://ideas.ibm.com
When implemented, CLI client will automatically pick up the certificate when there is only one. This RFE is prioritized for the next release after 11.5.9.
Based on discussions with different IBM parties, adding the below information to further clarify this requirement:
High-level requirement:
Enhance the Db2 Runtime Client driver with the functionality to auto-select an appropriate certificate, e.g. certA, from the list of available certificates, e.g. [certA, certB, certC], for client certificate authentication.
This enables the use of client certificates in large environments. Furthermore it aligns the behavior with the Db2 JDBC driver.
Requirement:
The Db2 Runtime Client currently supports SSL client authentication using certificates. It does this by utilizing a sslClientLabel (aka Friendly Name). This sslClientLabel needs to be set for the certificate and it needs to be set in the db2dsdriver.cfg configuration file.
This approach works on a technical level, but it requires individual configuration for every user. Furthermore, the required configuration changes break existing behavior of other applications. It is not manageable and not feasible for large, existing PKI environments.
In order to overcome this limitation the Db2 Runtime Client driver shall be enhanced with the functionality to auto-select an appropriate certificate from the list of available certificates (aligned with the behavior of the Db2 JDBC driver).
I.e. If no sslClientLabel is configured in the driver configuration, or if a specific keyword is set (e.g. SSLClientLabel = DB2_LOOKUP), then the Db2 Runtime Client driver shall pick one of the certificates that is currently available for authentication purposes.
The list of certificates as provided by gsk8capicmd_64.exe -cert -list -db mscng might be a suitable approach.
Java driver uses JDK for ssl implementation and Non-Java driver uses IBM gskit library for ssl implementation. JDK supports separate keystore and truststore. Hence it is possible to use keystore for storing client certificate and truststore for storing server cerificate. So JDK knows that the certificate present in keystore is the client certificate that need to be send during connection, hence no need to specify the clientlabel from a jdbc application.
But GSKit does not have separate trust store and keystore. There is only one keydb for storing both client certificate and server certificate. Hence it is mandatory for the non-jdbc application to identify the client certificate that need to be picked from keydb during connection using clientlabel keyword.
There are 2 possible solutions for your scenario. You could try one of the below.
1) Provide the same client label name(Eg:test) for all the users while adding/importing the certificate to the keydb. This way, all users can use the same db2dsdriver.cfg file where clientlabel will point to the same label name(Eg:test).
2) If there is a default friendly name(label) for the certificate added/imported to the keydb and If this default friendly name(label) is same for all users, you can specify this default friendly name(label) as clientlabel in db2dsdriver.cfg file and use the same db2dsdriver.cfg for all users.
Below is an example of a certificate with sample friendly name in keydb
- "cn=test user##13:0:0:94:5c:b2:1f:c3:cc:3a:7d:39:63:0:0:0:0:94:5c##CN=IBM Issuing CA,DC=IBM,DC=com"
The string before ## is the default friendly name. ie. cn=test user
You can use the below command to list certificates/label names
gsk8capicmd_64 -cert -list -db GSK_MS_CERTIFICATE_STORE