Getting Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching #9561
Replies: 3 comments 10 replies
-
You should be able to disable the TLs hostname verification using this options: https://kafka.apache.org/documentation/#brokerconfigs_ssl.endpoint.identification.algorithm |
Beta Was this translation helpful? Give feedback.
-
@scholzj how we can do it in Strimzi Kafka Connect yaml? |
Beta Was this translation helpful? Give feedback.
-
@scholzj I added I am facing one more issue, our Kafka Clusters are deployed in on-prem instance and Debezium Kafka Connect on AWS instance. I have checked the connectivity with the help of KafkaCat command and its working. KafkaCat command: But our debezium kafka connect pod is not coming up, its failing with timeout error.
Upon looking into logs of kafka connect I found that, it 1st sends request to kafka cluster using
and again it tries to connect to kafka cluster with the broker url received in METADATA response. Which in our case are not reachable. Is there any way by which we can avoid using broker url from METADATA response? Because in our case we have to use the AWS private link endpoint to connect to kafka cluster. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
We are getting Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching exception with below KafkaConnect configuration:
kafka_connect.yaml:
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: debezium-connect-cluster
namespace: {{ .Values.namespace }}
annotations:
strimzi.io/use-connector-resources: "true"
spec:
version: 3.5.0
image: "{{ .Values.image.repository }}/debezium-connect-postgres:{{ .Values.image.tag }}"
replicas: {{ .Values.connect.replicaCount }}
bootstrapServers: {{ .Values.connect.bootstrapServers }}
{{- if .Values.imagePullSecrets }}
template:
pod:
imagePullSecrets:
- name: {{ .Values.imagePullSecrets }}
{{- end }}
authentication:
type: scram-sha-512
username: {{ .Values.connect.authentication.username }}
passwordSecret:
secretName: debezium-secret
password: password
tls:
trustedCertificates:
- certificate: Kafka_Root_CA_v1.crt
secretName: kafka-secret
logging:
type: inline
loggers:
kafka.root.logger.level: DEBUG
config:
config.providers: secrets
config.providers.secrets.class: io.strimzi.kafka.KubernetesSecretConfigProvider
#group.id: 2210
offset.storage.topic: {{ .Values.connect.config.offset_storage_topic }}
config.storage.topic: {{ .Values.connect.config.config_storage_topic }}
status.storage.topic: {{ .Values.connect.config.status_storage_topic }}
# -1 means it will use the default replication factor configured in the broker
config.storage.replication.factor: 1
offset.storage.replication.factor: 1
status.storage.replication.factor: 1
key.converter: org.apache.kafka.connect.json.JsonConverter
value.converter: org.apache.kafka.connect.json.JsonConverter
externalConfiguration:
volumes:
- name: connector
secret:
secretName: connector-secret
Exception:
2024-01-17 13:12:09,586 ERROR Stopping due to error (org.apache.kafka.connect.cli.AbstractConnectCli) [main]
org.apache.kafka.connect.errors.ConnectException: Failed to connect to and describe Kafka cluster. Check worker's broker connection and security properties.
at org.apache.kafka.connect.runtime.WorkerConfig.lookupKafkaClusterId(WorkerConfig.java:305)
at org.apache.kafka.connect.runtime.WorkerConfig.lookupKafkaClusterId(WorkerConfig.java:285)
at org.apache.kafka.connect.runtime.WorkerConfig.kafkaClusterId(WorkerConfig.java:415)
at org.apache.kafka.connect.cli.AbstractConnectCli.startConnect(AbstractConnectCli.java:124)
at org.apache.kafka.connect.cli.AbstractConnectCli.run(AbstractConnectCli.java:94)
at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:116)
Caused by: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:165)
at org.apache.kafka.connect.runtime.WorkerConfig.lookupKafkaClusterId(WorkerConfig.java:299)
... 5 more
Caused by: org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed
Caused by: javax.net.ssl.SSLHandshakeException: No subject alternative DNS name matching Broker_URL found.
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)
at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1277)
at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1264)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1209)
at org.apache.kafka.common.network.SslTransportLayer.runDelegatedTasks(SslTransportLayer.java:435)
at org.apache.kafka.common.network.SslTransportLayer.handshakeUnwrap(SslTransportLayer.java:523)
at org.apache.kafka.common.network.SslTransportLayer.doHandshake(SslTransportLayer.java:373)
at org.apache.kafka.common.network.SslTransportLayer.handshake(SslTransportLayer.java:293)
at org.apache.kafka.common.network.KafkaChannel.prepare(KafkaChannel.java:178)
at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:543)
at org.apache.kafka.common.network.Selector.poll(Selector.java:481)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:571)
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.processRequests(KafkaAdminClient.java:1381)
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1312)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching Broker_URL found.
at java.base/sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:212)
at java.base/sun.security.util.HostnameChecker.match(HostnameChecker.java:103)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:458)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:418)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:292)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:144)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1335)
... 19 more
We are using Strimzi Kafka Operator 0.38.0.
Is it possible to disable the DNS verification from Kafka Connect side? If so, what are the configurations for same.
Beta Was this translation helpful? Give feedback.
All reactions