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

Hướng Dẫn Chi Tiết Tạo Chứng Chỉ SSL và Cấu Hình Elasticsearch Với OpenSSL

Đăng vào 1 tháng trước

• 3 phút đọc

Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng OpenSSL để tạo chứng chỉ SSL cho Elasticsearch và cấu hình thực hiện một cách chi tiết từ A đến Z. Bạn sẽ được hướng dẫn qua từng bước cụ thể, từ việc tạo khóa riêng, chứng chỉ, cho đến cấu hình Elasticsearch và tạo Kubernetes Secret. Hãy cùng bắt đầu ngay!

Bước 1: Tạo Khóa và Chứng Chỉ SSL

Tạo Khóa Riêng (Private Key)

Đầu tiên, chúng ta cần tạo một khóa riêng cho Elasticsearch. Thực hiện bằng cách sử dụng lệnh sau:

bash Copy
openssl genrsa -out elasticsearch.key 2048

Tạo Yêu Cầu Chứng Chỉ (CSR)

Tiếp theo, bạn sẽ tạo một yêu cầu chứng chỉ bằng cách chạy lệnh sau:

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

Trong quá trình này, bạn sẽ được yêu cầu nhập một số thông tin như tên miền và tên tổ chức. Hãy điền thông tin theo yêu cầu.

Tạo Chứng Chỉ Tự Ký

Cuối cùng, chúng ta sẽ tạo chứng chỉ tự ký với lệnh sau:

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

Bước 2: Tạo Keystore

Elasticsearch cần 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 keytool nếu đã cài đặt JDK. Để sử dụng OpenSSL, hãy thực hiện theo các bước sau:

Chuyển Đổi Chứng Chỉ và Khóa Sang Định Dạng PKCS12

Sử dụng lệnh dưới đây để chuyển đổi:

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

Hãy thay your_keystore_password bằng mật khẩu mà 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 mà bạn vừa tạo:

bash Copy
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. Đảm bảo chỉnh sửa các giá trị mật khẩu cho phù hợp:

yaml Copy
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 ở bước 4 vào một file với tên elasticsearch-deployment.yaml. Sau đó, triển khai Elasticsearch với lệnh:

bash Copy
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 thực hiện lệnh sau:

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

Hãy thay <pod-name> bằng tên của pod Elasticsearch của bạn.

Hy vọng hướng dẫn chi tiết này sẽ giúp bạn thực hiện thành công việc tạo chứng chỉ SSL và cấu hình Elasticsearch!
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