Jakub Scholz created KAFKA-20440:
------------------------------------

             Summary: PEM certificate support should not depend on PKCS12
                 Key: KAFKA-20440
                 URL: https://issues.apache.org/jira/browse/KAFKA-20440
             Project: Kafka
          Issue Type: Bug
            Reporter: Jakub Scholz


Currently, when using PEM certificates with Kafka, the {{PemStore}} class will 
create an in-memory PKCS12 store and add the PEM certificates/private/public 
keys to it. And then it will use the PKCS12 in-memory store. The PKCS12 
keystore type is hardcoded in the code.

Because the store type is hardcoded, it means that PEM format cannot be used in 
Java virtual machines where PKCS12 stores are disabled. An example of such an 
environment is when running Kafka / Kafka clients with the Chainguard FIPS 
container images that are built on top of the BouncyCastle library, and where 
the PKCS12 store support is disabled.

There does not seem to be any reason why the PKCS12 store type should be 
hardcoded. Kafka relies on the Java Keystore API to create the in-memory 
keystore and is able to use it with different store types as well. The 
{{PemStore}} class can use the default store type instead 
({{{}KeyStore.getDefaultType(){}}}). That way, it would provide more 
flexibility and independence on the exact JVM configuration it is being used 
with. At the same time, it should continue to work for the existing users the 
same way as before.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to