0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Cấu Hình SSL cho Elasticsearch trên Nền Tảng Kubernetes

Đăng vào 4 ngày trước

• 4 phút đọc

Chủ đề:

apache ssl

Hướng Dẫn Cấu Hình SSL cho Elasticsearch trên Nền Tảng Kubernetes

Để đảm bảo tính bảo mật cho dịch vụ Elasticsearch chạy trên Kubernetes, việc cấu hình SSL là rất cần thiết. Bài viết này sẽ hướng dẫn bạn từng bước trong việc tạo chứng chỉ SSL và cấu hình dịch vụ một cách chính xác.

Bước 1: Tạo File Cấu Hình OpenSSL

Trước tiên, bạn cần tạo một file cấu hình cho OpenSSL. Hãy tạo một file có tên là openssl.cnf với nội dung như sau:

Copy
[ 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: Chuyển Đổi Sang Định Dạng PKCS#12

Để chuyển đổi chứng chỉ và khóa thành định dạng PKCS#12, hãy sử dụng lệnh sau:

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

Bước 4: Tạo File Cấu Hình Deployment cho Elasticsearch

Tiếp theo, bạn cần tạo một file cấu hình deployment cho Elasticsearch với SSL. Dưới đây là ví dụ:

Copy
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

Sau khi đã sao chép file chứng chỉ elasticsearch.p12 vào thư mục đúng trên máy chủ Kubernetes, bạn hãy áp dụng file deployment bằng lệnh:

kubectl apply -f your-deployment-file.yaml

Kết Luận

Hãy nhớ 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 hoặc gặp vấn đề trong suốt quá trình cấu hình, đừng ngần ngại liên hệ để được hỗ trợ!

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào