+1

OpenSSL để tạo chứng chỉ SSL và cấu hình cho Elasticsearch

Để sử dụng OpenSSL để tạo chứng chỉ SSL và cấu hình cho Elasticsearch, dưới đây là hướng dẫn chi tiết từ A đến Z. Chúng ta sẽ thực hiện các bước sau:

Tạo khóa riêng và chứng chỉ tự ký. Cấu hình Elasticsearch để sử dụng SSL. Tạo deployment file cho Elasticsearch với cấu hình SSL. Bước 1: Tạo Khóa và Chứng Chỉ SSL Tạo khóa riêng (private key):

openssl genrsa -out elasticsearch.key 2048

Tạo yêu cầu chứng chỉ (CSR):

openssl req -new -key elasticsearch.key -out elasticsearch.csr

Bạn sẽ được yêu cầu nhập thông tin như tên miền, tên tổ chức, vv. Hãy điền thông tin theo yêu cầu. Tạo chứng chỉ tự ký:

openssl x509 -req -days 365 -in elasticsearch.csr -signkey elasticsearch.key -out elasticsearch.crt

Bước 2: Tạo Keystore Elasticsearch yêu cầu keystore để lưu trữ khóa và chứng chỉ. Bạn có thể tạo keystore bằng cách sử dụng OpenSSL hoặc sử dụng keytool nếu bạn đã cài đặt JDK. Tuy nhiên, nếu bạn muốn hoàn toàn sử dụng OpenSSL, bạn có thể làm theo cách sau:

Tạo keystore:

Trước tiên, bạn cần chuyển đổi chứng chỉ và khóa thành định dạng PKCS12:

openssl pkcs12 -export -in elasticsearch.crt -inkey elasticsearch.key -out elasticsearch.p12 -name elasticsearch -passout pass:your_keystore_password

Thay your_keystore_password bằng mật khẩu bạn muốn sử dụng cho keystore.

Bước 3: Tạo Kubernetes Secret Sau khi có keystore, bạn cần tạo Kubernetes Secret để lưu trữ keystore.

kubectl create secret generic elasticsearch-keystore --from-file=elasticsearch.p12

Bước 4: Cấu Hình Elasticsearch với SSL Dưới đây là mẫu file YAML cho deployment của Elasticsearch với cấu hình SSL:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch
  namespace: elk
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: elasticsearch:8.6.0
        env:
        - name: ELASTIC_PASSWORD
          value: "your_password"  # Đặt mật khẩu cho người dùng elastic
        - 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: "your_keystore_password"
        - name: xpack.security.transport.ssl.enabled
          value: "true"
        - name: xpack.security.transport.ssl.verification_mode
          value: "certificate"
        volumeMounts:
        - name: certs
          mountPath: /usr/share/elasticsearch/config/certs
      volumes:
      - name: certs
        secret:
          secretName: elasticsearch-keystore
      ports:
      - containerPort: 9200
        name: elasticsearch
        protocol: TCP

Bước 5: Triển Khai Elasticsearch Lưu file YAML vào một file, ví dụ elasticsearch-deployment.yaml.

Triển khai Elasticsearch:

kubectl apply -f elasticsearch-deployment.yaml

Bước 6: Kiểm Tra và Tạo Enrollment Token Sau khi Elasticsearch đã được triển khai thành công, bạn có thể tạo enrollment token bằng cách chạy lệnh sau:

kubectl exec -it <pod-name> -n elk -- /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node Thay

bằng tên của pod Elasticsearch của bạn.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.