5.0
SSL/TLS Configuration
Lenses can use TLS/SSL connections and supports Java Keystore (JKS) format for keys and certificates. At the moment, services may require:
- Truststore: The SSL/TLS trust store to use as the global JVM trust store. Available formats are
.jks
,.p12
,.pfx
. - Keystore: The SSL/TLS keystore to use for the TLS listener for Lenses. Available format is
.jks
.
Lenses can connect with external services through SSL, see the pages kafka brokers , schema registry and connect for specific details on how to configure them.
Convert PEM to JKS Format
If the certificates are previously created with the PEM
format, they need to be converted to JKS
.
To do so, we can use keytool
, a key and certificate management tool, that can be easily used through the lenses docker image.
By using the docker image we ensure the java version used by lenses and keytool are compatible.
Generic command example:
docker run -it --rm lensesio/lenses:<version> /usr/bin/keytool <args>
Generate Truststore
To convert your PEM truststore to JKS, run the command below, where
file
: input trustore file in PEM to be converted to JKSkeystore
: output file in JKS formatalias
: unique string to identify the key entry
docker run \
-v /path/to/file.pem:/tmp/file.pem:ro \
-v /path/to/output/:/output \
-it --rm lensesio/lenses:5.0.0 /usr/bin/keytool \
-importcert \
-noprompt \
-trustcacerts \
-keystore /output/truststore.jks \
-alias "${alias}" \
-file /tmp/file.pem \
-storepass changeit \
-storetype JKS
The output truststore will be found at /path/to/output/truststore.jks
.
Generate Keystore
In this part, we’ll generate a keystore file from a private key and a certificate file in PEM
format. The process requires two steps:
- Create
.p12
keystore. Password is harcoded tochangeit
as an example
openssl pkcs12 -export \
-inkey "${cert.key.pem}" \
-in "${cert.crt.pem}" \
-out /tmp/keystore.p12 \
-name service \
-passout pass:changeit
- Run
keytool
to convert toJKS
. Please, change allchangeit
references and mounted paths.
docker run \
-v /path/to/keystore.p12:/tmp/keystore.p12:ro \
-v /path/to/output/:/output \
-it --rm lensesio/lenses:5.0.0 /usr/bin/keytool \
-importkeystore \
-noprompt -v \
-srckeystore /tmp/keystore.p12 \
-srcstoretype PKCS12 \
-srcstorepass changeit \
-alias service \
-deststorepass changeit \
-destkeypass changeit \
-destkeystore /output/cert.jks \
-deststoretype JKS
The output keystore will be found at /path/to/output/cert.jks
.