Как передать SSL-конфигурацию, такую ​​как расположение склада доверенных сертификатов и пароль? - PullRequest
0 голосов
/ 07 февраля 2019

Прямо сейчас я настроил свой сервер Kafka с самозаверяющим сертификатом.

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper:latest
    ports:
      - 2181:2181
    hostname: zookeeper
  kafka:
    image: wurstmeister/kafka:2.11-2.0.0
    command: [start-kafka.sh]
    ports:
      - 9093:9093
    hostname: kafka
    environment:
      KAFKA_LISTENERS: SSL://0.0.0.0:9093
      KAFKA_ADVERTISED_LISTENERS: SSL://alfrescokafka.leafycode.com:9093
      KAFKA_SSL_KEYSTORE_LOCATION: /home/amur42s/ssl/kafka.server.keystore.jks
      KAFKA_SSL_KEYSTORE_PASSWORD: oE4KJ9FVMjMXGpgpp0qwLzUDy0uz
      KAFKA_SSL_KEY_PASSWORD: oE4KJ9FVMjMXGpgpp0qwLzUDy0uz
      KAFKA_SSL_TRUSTSTORE_LOCATION: /home/amur42s/ssl/kafka.server.truststore.jks
      KAFKA_SSL_TRUSTSTORE_PASSWORD: 123
      KAFKA_ADVERTISED_HOST_NAME: 116.203.65.132 # docker-machine ip
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_CREATE_TOPICS: ""
      KAFKA_SSL_CLIENT_AUTH: 'required'
      KAFKA_SECURITY_INTER_BROKER_PROTOCOL: 'SSL'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /home/ssl:/home/ssl
    depends_on:
      - "zookeeper"

К сожалению, я не могу подключиться к нему с помощью Kafka-узла TimeoutError: Request timed out after 30000ms.Похоже, мне нужно установить ssl.truststore.location и ssl.trsutstore.password.Как я могу это сделать?

export const kafkaClientOptions = {
  kafkaHost: process.env.KAFKA_PRODUCER_HOST,
  ssl: true,
  sslOptions: {
    rejectUnauthorized: false
  }
};

const client = new kafka.KafkaClient(kafkaClientOptions);

const Producer = kafka.Producer;
const producer = new Producer(client);

1 Ответ

0 голосов
/ 05 августа 2019

вы не должны получить ошибку тайм-аута из-за конфигурации ssl miss, но вот настройки для установки клиента kafka с ssl

ssl:true,
sslOptions: {
    key: fileManager.readFile("path/to/key"),
    cert: fil`enter code here`eManager.readFile("path/to/cert"),
    ca: fileManager.readFile("path/to/ca"),
    passphrase: "your_passphrase"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...