Ошибка в Kafka, запущенном на openshift во время SSL - PullRequest
0 голосов
/ 02 августа 2020

У меня Kafka работает на openshift, и я предоставил маршрут (сквозной TLS) для доступа к брокеру Kafka. Ниже приведены server.properties брокера. Обратите внимание, что служба openshift - это сообщение о переадресации порта на 9043. У меня есть хранилище ключей и сертификат на брокере Kafka и сертификат на клиенте.

sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
listeners=INTERNAL://0.0.0.0:9092,EXTERNAL://0.0.0.0:9043
advertised.listeners=INTERNAL://localhost:9092,EXTERNAL:abc:9043
inter.broker.listener.name=INTERNAL
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SSL
ssl.client.auth=none
security.protocol=SSL
ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
ssl.keystore.location = 
ssl.keystore.password = 
ssl.key.password = 
ssl.truststore.location =
ssl.truststore.password = 
ssl.endpoint.identification.algorithm=

Я пытаюсь получить доступ к маршруту с помощью производителя Kafka на моем локальном сервере как ниже

kafka-console-producer.bat --broker-list abc:443 --producer-property security.protocol=SSL --producer-property ssl.truststore.password=*** --producer-property ssl.truststore.location=ca.crt  --topic dummy

Я получаю ошибку ниже на модуле Kafka.

data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, READ: TLSv1.2 Handshake, length = 347
check handshake state: client_hello[1]
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, fatal error: 10: Handshake message sequence violation, 1
javax.net.ssl.SSLProtocolException: Handshake message sequence violation, 1
%% Invalidated:  [Session-1, SSL_NULL_WITH_NULL_NULL]
%% Invalidated:  [Session-2, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384]
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, SEND TLSv1.2 ALERT:  fatal, description = unexpected_message
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, WRITE: TLSv1.2 Alert, length = 2
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, called closeOutbound()
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, closeOutboundInternal()
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, called closeInbound()
data-plane-kafka-network-thread-0-ListenerName(EXTERNAL)-SSL-3, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
[2020-08-01 23:30:26,397] INFO [SocketServer brokerId=0] Failed authentication with /10.X.X.X (SSL handshake failed) (org.apache.kafka.common.network.Selector)

Ниже приведена ошибка клиента производителя

)

javax.net.ssl|ERROR|0E|kafka-producer-network-thread | console-producer|2020-08-01 19:40:02.523 CDT|TransportContext.java:313|Fatal (CERTIFICATE_UNKNOWN): Extended key usage does not permit use for TLS server authentication (
"throwable" : {
  sun.security.validator.ValidatorException: Extended key usage does not permit use for TLS server authentication

Есть идеи относительно того, в чем может быть проблема.

1 Ответ

0 голосов
/ 03 августа 2020

После некоторых исследований мы выяснили, что расширенное использование ключа в сертификате было установлено как клиентская аутентификация. Мы обновили то же самое, добавили SAN и смогли подключиться.

...