+1

SSL cho Elasticsearch trong Kubernetes

Để cấu hình SSL cho Elasticsearch trong Kubernetes, bạn cần thay đổi file cấu hình với thông tin chính xác về dịch vụ của bạn. Dưới đây là hướng dẫn chi tiết để tạo chứng chỉ SSL và điều chỉnh cấu hình.

Bước 1: Tạo File Cấu Hình OpenSSL Tạo một file cấu hình OpenSSL, ví dụ openssl.cnf, với nội dung như sau:

[ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
x509_extensions     = req_ext
prompt              = no

[ req_distinguished_name ]
C  = VN               # Mã quốc gia
ST = VN               # Tỉnh/Thành phố
L  = VN               # Địa phương
O  = VN               # Tên tổ chức
OU = Vn               # Phòng ban
CN = elasticsearch-service.elks.svc.cluster.local  # Tên DNS của dịch vụ

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = elasticsearch-service.elks.svc.cluster.local  # Tên DNS chính
DNS.2 = elasticsearch-service                             # Tên DNS ngắn

Bước 2: Tạo Khóa và Chứng Chỉ Sử dụng lệnh sau để tạo khóa và chứng chỉ:

openssl req -x509 -new -nodes -key elasticsearch.key-sha256 -days 365 -out elasticsearch.crt -config openssl.cnf

Bước 3: Tạo Keystore PKCS#12 Chuyển đổi chứng chỉ và khóa thành định dạng PKCS#12:

openssl pkcs12 -export -out elasticsearch.p12 -inkey elasticsearch.key-sha256 -in elasticsearch.crt -passout pass:123456

Bước 4: Tạo Deployment File cho Elasticsearch Dưới đây là một ví dụ về file cấu hình deployment cho Elasticsearch sử dụng SSL:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch-deployment
  namespace: elks
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:8.5.1
        env:
        - name: discovery.type
          value: single-node
        - name: ELASTIC_PASSWORD
          value: "123456d"
        - name: xpack.security.enabled
          value: "true"
        - name: xpack.security.http.ssl.enabled
          value: "true"
        - name: xpack.security.http.ssl.keystore.path
          value: "/usr/share/elasticsearch/config/certs/elasticsearch.p12"
        - name: xpack.security.http.ssl.keystore.password
          value: "123456d"
        - name: xpack.security.transport.ssl.enabled
          value: "true"
        - name: xpack.security.transport.ssl.verification_mode
          value: "certificate"
        - name: xpack.security.transport.ssl.keystore.path
          value: "/usr/share/elasticsearch/config/certs/elasticsearch.p12"
        - name: xpack.security.transport.ssl.keystore.password
          value: "123456d"
        ports:
        - containerPort: 9200
        volumeMounts:
        - name: certs
          mountPath: /usr/share/elasticsearch/config/certs
      volumes:
      - name: certs
        hostPath:
          path: /path/to/certs  # Đường dẫn trên host tới certs

Bước 5: Áp Dụng File Cấu Hình Đảm bảo rằng file chứng chỉ (elasticsearch.p12) đã được sao chép vào thư mục đúng trên máy chủ Kubernetes. Áp dụng file deployment: kubectl apply -f your-deployment-file.yaml Kết Luận Hãy thay đổi /path/to/certs thành đường dẫn thực tế tới file elasticsearch.p12 trên máy chủ của bạn. Nếu bạn có bất kỳ câu hỏi nào thêm hoặc gặp vấn đề gì trong quá trình này, hãy cho tôi biết nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí