Исправлена проблема с Kafka SSL сертификатами
- Создан Dockerfile для генерации SSL сертификатов через Docker - Обновлен скрипт generate-ssl.sh для работы в Docker-контейнере - Исправлены пути монтирования SSL сертификатов в docker-compose.yml - Временно отключен SSL для Kafka (работает в PLAINTEXT режиме) - Kafka успешно запускается и создает топики - Добавлены SSL сертификаты для PostgreSQL
This commit is contained in:
parent
a57d99b5ac
commit
f89b4fe282
5
Makefile
5
Makefile
@ -163,11 +163,12 @@ restore: ## Восстановить данные из резервной коп
|
|||||||
ssl-generate: ## Генерация SSL сертификатов для Kafka и PostgreSQL
|
ssl-generate: ## Генерация SSL сертификатов для Kafka и PostgreSQL
|
||||||
@echo "🔐 Генерация SSL сертификатов для Kafka..."
|
@echo "🔐 Генерация SSL сертификатов для Kafka..."
|
||||||
@mkdir -p ./kafka-ssl
|
@mkdir -p ./kafka-ssl
|
||||||
@docker run --rm -v $$PWD:/workspace -w /workspace \
|
@docker build -t sensus-kafka-ssl ./kafka-ssl/
|
||||||
|
@docker run --rm -v $$PWD:/workspace \
|
||||||
-e KAFKA_SSL_KEYSTORE_PASSWORD=$${KAFKA_SSL_KEYSTORE_PASSWORD:-kafka123} \
|
-e KAFKA_SSL_KEYSTORE_PASSWORD=$${KAFKA_SSL_KEYSTORE_PASSWORD:-kafka123} \
|
||||||
-e KAFKA_SSL_TRUSTSTORE_PASSWORD=$${KAFKA_SSL_TRUSTSTORE_PASSWORD:-kafka123} \
|
-e KAFKA_SSL_TRUSTSTORE_PASSWORD=$${KAFKA_SSL_TRUSTSTORE_PASSWORD:-kafka123} \
|
||||||
-e KAFKA_SSL_KEY_PASSWORD=$${KAFKA_SSL_KEY_PASSWORD:-kafka123} \
|
-e KAFKA_SSL_KEY_PASSWORD=$${KAFKA_SSL_KEY_PASSWORD:-kafka123} \
|
||||||
openjdk:11-jre-slim bash -c "apt-get update && apt-get install -y openssl && chmod +x /workspace/kafka-ssl/generate-ssl.sh && /workspace/kafka-ssl/generate-ssl.sh"
|
sensus-kafka-ssl
|
||||||
@echo "✅ SSL сертификаты Kafka созданы в ./kafka-ssl/"
|
@echo "✅ SSL сертификаты Kafka созданы в ./kafka-ssl/"
|
||||||
@echo "🔐 Генерация SSL сертификатов для PostgreSQL..."
|
@echo "🔐 Генерация SSL сертификатов для PostgreSQL..."
|
||||||
@mkdir -p ./postgres-ssl
|
@mkdir -p ./postgres-ssl
|
||||||
|
22
ca-cert
Normal file
22
ca-cert
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDrzCCApegAwIBAgIUSjePknvzx9A0iWmw4kymBR8xqVkwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwZzELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9z
|
||||||
|
Y293MQ8wDQYDVQQKDAZTZW5zdXMxCzAJBgNVBAsMAklUMRgwFgYDVQQDDA9jYS5z
|
||||||
|
ZW5zdXMubG9jYWwwHhcNMjUwOTEwMTU0MTE3WhcNMjYwOTEwMTU0MTE3WjBnMQsw
|
||||||
|
CQYDVQQGEwJSVTEPMA0GA1UECAwGTW9zY293MQ8wDQYDVQQHDAZNb3Njb3cxDzAN
|
||||||
|
BgNVBAoMBlNlbnN1czELMAkGA1UECwwCSVQxGDAWBgNVBAMMD2NhLnNlbnN1cy5s
|
||||||
|
b2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKzwlx/OqUcg1DdL
|
||||||
|
dCwuopkWPVHx1eZTaEWb5WM9Z1WkOJYkhlNeqzIqeH/EdvS0KvFJpsP4KJGj7HF0
|
||||||
|
PG93aiNN7MMd64sIwf67cy1s1BTsm5WdRlf9NYf4NBZcjykQq9y5Y7SvrGBLqgfY
|
||||||
|
mTciMRLT6w3BGW8IiU5Cijwv2FBzhhSQSXJilRP1urW+TmctEfFoOLveFaDKz2nP
|
||||||
|
2jGgQMf2MTLslW3GY0TdtDlmkLaJ9gcy1Z+DVgpID8Y0sgIMpBIUN7s6HT3Uh/qT
|
||||||
|
qS5BczJW06zm7mwS99yCN+h8SFKbyGffx5omCK4kBtyezcev28nsfFlDUyyxzQ6N
|
||||||
|
PdbHIIUCAwEAAaNTMFEwHQYDVR0OBBYEFP2VgVDe9fNtpcUKQuv+p01msdYkMB8G
|
||||||
|
A1UdIwQYMBaAFP2VgVDe9fNtpcUKQuv+p01msdYkMA8GA1UdEwEB/wQFMAMBAf8w
|
||||||
|
DQYJKoZIhvcNAQELBQADggEBAE8Ue2K7OIuzWZ9PSdRvK5ubMLWK2P+YKo+85pvn
|
||||||
|
k0/0EjaQDBbVR9OytzR8Viwl3ME9hgP4QEhWLHcNgQqtQ+VWRZtLjteJ0MYYzfwO
|
||||||
|
Ue1NNB0Pa2lA6xLIekMbLVCo+wEQ64VCKwI0gjcJdSkx38lQ9DTbU6OepAa+w9Bo
|
||||||
|
wM1TfTM/yMrXkGWbbjTMGCuQjxZJS2ScOcZIyWwLfv2GDLEG1I4Z+YwVVv5orf5X
|
||||||
|
4RcXyuFK3AJuF4/eM3wLvizEfmcTKtEFaghWin8dhWg1RIV+u8QsuHEasuhB1JCc
|
||||||
|
puvKzb9czXEmJso+aDyy1SOwCrbb7ZOX97OxTzGfXdcbwVY=
|
||||||
|
-----END CERTIFICATE-----
|
30
ca-key
Normal file
30
ca-key
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
OHkZKuOPw37gLXaPvNO15w==
|
||||||
|
-----END ENCRYPTED PRIVATE KEY-----
|
@ -2,8 +2,6 @@
|
|||||||
# Назначение: Инфраструктура для SensusAgent и SensusWorker
|
# Назначение: Инфраструктура для SensusAgent и SensusWorker
|
||||||
# Включает: Kafka, KafkaUI, PostgreSQL, ClickHouse (2 реплики)
|
# Включает: Kafka, KafkaUI, PostgreSQL, ClickHouse (2 реплики)
|
||||||
|
|
||||||
version: "3.9"
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# Zookeeper для Kafka
|
# Zookeeper для Kafka
|
||||||
zookeeper:
|
zookeeper:
|
||||||
@ -34,9 +32,9 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
KAFKA_BROKER_ID: 1
|
KAFKA_BROKER_ID: 1
|
||||||
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
|
||||||
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:29092,PLAINTEXT_HOST://0.0.0.0:9092,SSL://0.0.0.0:9093
|
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:29092,PLAINTEXT_HOST://0.0.0.0:9092
|
||||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://10.29.91.4:9092,SSL://10.29.91.4:9093
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://10.29.91.4:9092
|
||||||
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
|
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
|
||||||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
||||||
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
|
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
|
||||||
@ -47,19 +45,8 @@ services:
|
|||||||
KAFKA_LOG_RETENTION_HOURS: ${KAFKA_LOG_RETENTION_HOURS:-168}
|
KAFKA_LOG_RETENTION_HOURS: ${KAFKA_LOG_RETENTION_HOURS:-168}
|
||||||
KAFKA_LOG_SEGMENT_BYTES: ${KAFKA_LOG_SEGMENT_BYTES:-1073741824}
|
KAFKA_LOG_SEGMENT_BYTES: ${KAFKA_LOG_SEGMENT_BYTES:-1073741824}
|
||||||
KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: ${KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS:-300000}
|
KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: ${KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS:-300000}
|
||||||
# SSL настройки
|
|
||||||
KAFKA_SSL_KEYSTORE_LOCATION: /var/ssl/private/kafka.server.keystore.jks
|
|
||||||
KAFKA_SSL_KEYSTORE_FILENAME: kafka.server.keystore.jks
|
|
||||||
KAFKA_SSL_KEYSTORE_PASSWORD: ${KAFKA_SSL_KEYSTORE_PASSWORD:-kafka123}
|
|
||||||
KAFKA_SSL_KEY_PASSWORD: ${KAFKA_SSL_KEY_PASSWORD:-kafka123}
|
|
||||||
KAFKA_SSL_TRUSTSTORE_LOCATION: /var/ssl/private/kafka.server.truststore.jks
|
|
||||||
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.server.truststore.jks
|
|
||||||
KAFKA_SSL_TRUSTSTORE_PASSWORD: ${KAFKA_SSL_TRUSTSTORE_PASSWORD:-kafka123}
|
|
||||||
KAFKA_SSL_CLIENT_AUTH: ${KAFKA_SSL_CLIENT_AUTH:-none}
|
|
||||||
KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM: ${KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM:-https}
|
|
||||||
volumes:
|
volumes:
|
||||||
- kafka-data:/var/lib/kafka/data
|
- kafka-data:/var/lib/kafka/data
|
||||||
- ./kafka-ssl:/var/ssl/private:ro
|
|
||||||
ports:
|
ports:
|
||||||
- "${KAFKA_EXTERNAL_PORT:-9092}:9092"
|
- "${KAFKA_EXTERNAL_PORT:-9092}:9092"
|
||||||
- "${KAFKA_SSL_PORT:-9093}:9093"
|
- "${KAFKA_SSL_PORT:-9093}:9093"
|
||||||
@ -84,7 +71,7 @@ services:
|
|||||||
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: ${KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS:-kafka:29092}
|
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: ${KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS:-kafka:29092}
|
||||||
KAFKA_CLUSTERS_0_ZOOKEEPER: ${KAFKA_CLUSTERS_0_ZOOKEEPER:-zookeeper:2181}
|
KAFKA_CLUSTERS_0_ZOOKEEPER: ${KAFKA_CLUSTERS_0_ZOOKEEPER:-zookeeper:2181}
|
||||||
KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL: ${KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL:-PLAINTEXT}
|
KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL: ${KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL:-PLAINTEXT}
|
||||||
KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION: ${KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION:-/var/ssl/private/kafka.server.truststore.jks}
|
KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION: ${KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION:-/etc/kafka/secrets/kafka.server.truststore.jks}
|
||||||
KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD: ${KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD:-kafka123}
|
KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD: ${KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD:-kafka123}
|
||||||
DYNAMIC_CONFIG_ENABLED: ${DYNAMIC_CONFIG_ENABLED:-true}
|
DYNAMIC_CONFIG_ENABLED: ${DYNAMIC_CONFIG_ENABLED:-true}
|
||||||
# Авторизация Kafka UI
|
# Авторизация Kafka UI
|
||||||
@ -93,7 +80,7 @@ services:
|
|||||||
SPRING_SECURITY_USER_PASSWORD: ${KAFKA_UI_PASSWORD:-admin}
|
SPRING_SECURITY_USER_PASSWORD: ${KAFKA_UI_PASSWORD:-admin}
|
||||||
SPRING_SECURITY_USER_ROLES: ${KAFKA_UI_USER_ROLES:-ADMIN}
|
SPRING_SECURITY_USER_ROLES: ${KAFKA_UI_USER_ROLES:-ADMIN}
|
||||||
volumes:
|
volumes:
|
||||||
- ./kafka-ssl:/var/ssl/private:ro
|
- ./kafka-ssl:/etc/kafka/secrets:ro
|
||||||
ports:
|
ports:
|
||||||
- "${KAFKA_UI_PORT:-8080}:8080"
|
- "${KAFKA_UI_PORT:-8080}:8080"
|
||||||
networks:
|
networks:
|
||||||
|
28
kafka-ssl/Dockerfile
Normal file
28
kafka-ssl/Dockerfile
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Автор: Сергей Антропов, сайт: https://devops.org.ru
|
||||||
|
# Назначение: Docker-контейнер для генерации SSL сертификатов Kafka
|
||||||
|
|
||||||
|
FROM openjdk:17-jdk-slim
|
||||||
|
|
||||||
|
# Установка необходимых пакетов
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
openssl \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Создание рабочей директории
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Копирование скрипта генерации
|
||||||
|
COPY generate-ssl.sh /workspace/kafka-ssl/generate-ssl.sh
|
||||||
|
RUN chmod +x /workspace/kafka-ssl/generate-ssl.sh
|
||||||
|
|
||||||
|
# Создание директории для сертификатов
|
||||||
|
RUN mkdir -p /workspace/kafka-ssl
|
||||||
|
|
||||||
|
# Установка переменных окружения
|
||||||
|
ENV KAFKA_SSL_KEYSTORE_PASSWORD=kafka123
|
||||||
|
ENV KAFKA_SSL_TRUSTSTORE_PASSWORD=kafka123
|
||||||
|
ENV KAFKA_SSL_KEY_PASSWORD=kafka123
|
||||||
|
ENV CERT_VALIDITY_DAYS=365
|
||||||
|
|
||||||
|
# Команда по умолчанию
|
||||||
|
CMD ["/workspace/kafka-ssl/generate-ssl.sh"]
|
@ -72,16 +72,20 @@ keytool -keystore kafka.client.truststore.jks -alias CARoot -import -file ca-cer
|
|||||||
|
|
||||||
# 14. Копирование файлов в целевую директорию
|
# 14. Копирование файлов в целевую директорию
|
||||||
echo "📁 Копирование сертификатов..."
|
echo "📁 Копирование сертификатов..."
|
||||||
cp kafka.server.keystore.jks /workspace/kafka-ssl/
|
cp kafka.server.keystore.jks /workspace/
|
||||||
cp kafka.server.truststore.jks /workspace/kafka-ssl/
|
cp kafka.server.truststore.jks /workspace/
|
||||||
cp kafka.client.keystore.jks /workspace/kafka-ssl/
|
cp kafka.client.keystore.jks /workspace/
|
||||||
cp kafka.client.truststore.jks /workspace/kafka-ssl/
|
cp kafka.client.truststore.jks /workspace/
|
||||||
cp ca-cert /workspace/kafka-ssl/
|
cp ca-cert /workspace/
|
||||||
cp ca-key /workspace/kafka-ssl/
|
cp ca-key /workspace/
|
||||||
|
|
||||||
# 15. Установка правильных прав доступа
|
# 15. Установка правильных прав доступа
|
||||||
chmod 600 /workspace/kafka-ssl/*.jks
|
chmod 600 /workspace/*.jks
|
||||||
chmod 600 /workspace/kafka-ssl/ca-*
|
chmod 600 /workspace/ca-*
|
||||||
|
|
||||||
|
# 16. Проверка созданных файлов
|
||||||
|
echo "🔍 Проверка созданных файлов..."
|
||||||
|
ls -la /workspace/
|
||||||
|
|
||||||
echo "✅ SSL сертификаты успешно созданы!"
|
echo "✅ SSL сертификаты успешно созданы!"
|
||||||
echo "📋 Созданные файлы:"
|
echo "📋 Созданные файлы:"
|
||||||
|
BIN
kafka.client.keystore.jks
Normal file
BIN
kafka.client.keystore.jks
Normal file
Binary file not shown.
BIN
kafka.client.truststore.jks
Normal file
BIN
kafka.client.truststore.jks
Normal file
Binary file not shown.
BIN
kafka.server.keystore.jks
Normal file
BIN
kafka.server.keystore.jks
Normal file
Binary file not shown.
BIN
kafka.server.truststore.jks
Normal file
BIN
kafka.server.truststore.jks
Normal file
Binary file not shown.
1
postgres-ssl/ca.srl
Normal file
1
postgres-ssl/ca.srl
Normal file
@ -0,0 +1 @@
|
|||||||
|
43086F753CECE73B2BD20B70FEB9968991CC7FBF
|
Loading…
x
Reference in New Issue
Block a user