0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Cấu Hình Chứng Chỉ SSL Để Đáp Ứng Yêu Cầu Token Trong Kibana

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

• 3 phút đọc

Chủ đề:

elasticOpenSSL

Hướng Dẫn Cấu Hình Chứng Chỉ SSL Cho Elasticsearch

Chứng chỉ SSL rất quan trọng để bảo mật giao tiếp giữa Elasticsearch và các ứng dụng như Kibana. Dưới đây là hướng dẫn chi tiết để tạo chứng chỉ SSL và cấu hình Elasticsearch với Kubernetes.

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

Sử dụng lệnh sau để tạo một khóa riêng tư 2048-bit cho Elasticsearch:

bash Copy
openssl genpkey -algorithm RSA -out elasticsearch.key -pkeyopt rsa_keygen_bits:2048

2. Tạo Tệp CSR (Certificate Signing Request)

Sau khi có khóa riêng tư, bạn cần tạo tệp yêu cầu chứng chỉ (CSR) như sau. Bạn sẽ được yêu cầu nhập thông tin về tổ chức và miền của mình:

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

Ví dụ thông tin bạn sẽ nhập:

Country Name (2 letter code) [AU]: VN

State or Province Name (full name) [Some-State]: Hanoi

Locality Name (eg, city) []: Hanoi

Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany

Organizational Unit Name (eg, section) []: IT

Common Name (e.g. server FQDN or YOUR name) []: elasticsearch.local

3. Tạo Chứng Chỉ Tự Ký (Self-signed Certificate)

Sử dụng khóa riêng và tệp CSR để tạo chứng chỉ tự ký:

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

4. Tạo ConfigMap Để Lưu Trữ Chứng Chỉ

Bạn cần tạo một ConfigMap để lưu trữ các chứng chỉ và khóa riêng tư sử dụng trong Elasticsearch.

yaml Copy
apiVersion: v1
kind: ConfigMap
metadata:
  name: elasticsearch-certificates
  namespace: elk
data:
  elasticsearch.crt: |
    -----BEGIN CERTIFICATE-----
    # Nội dung của chứng chỉ
    -----END CERTIFICATE-----
  elasticsearch.key: |
    -----BEGIN PRIVATE KEY-----
    # Nội dung của khóa riêng tư
    -----END PRIVATE KEY-----

5. Tạo File Deployment Cho Elasticsearch

Dưới đây là file Deployment cơ bản cho Elasticsearch sử dụng chứng chỉ từ ConfigMap:

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: docker.elastic.co/elasticsearch/elasticsearch:8.1.2
        ports:
        - containerPort: 9200
        - containerPort: 9300
        env:
        - name: discovery.type
          value: single-node
        - name: ELASTIC_PASSWORD
          value: "your_elasticsearch_password"
        - name: xpack.security.enabled
          value: "true"
        - name: xpack.security.transport.ssl.enabled
          value: "true"
        - name: xpack.security.http.ssl.enabled
          value: "true"
        volumeMounts:
        - name: elasticsearch-certificates
          mountPath: /usr/share/elasticsearch/config/certs
          readOnly: true
      volumes:
      - name: elasticsearch-certificates
        configMap:
          name: elasticsearch-certificates
      securityContext:
        fsGroup: 1000
        runAsUser: 1000
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch
  namespace: elk
spec:
  ports:
  - port: 9200
    name: http
  - port: 9300
    name: transport
  selector:
    app: elasticsearch

6. Giải Thích Cấu Hình

  • ConfigMap: Lưu trữ chứng chỉ và khóa riêng tư của Elasticsearch.
  • Deployment: Cấu hình chạy Elasticsearch với các biến môi trường để bật tính năng bảo mật.
  • Service: Expose Elasticsearch với 2 cổng: 9200 cho HTTP và 9300 cho giao thức Transport.

7. Triển Khai Cấu Hình

Sau khi tạo xong cấu hình này, bạn có thể triển khai bằng lệnh sau:

bash Copy
kubectl apply -f elasticsearch-configmap.yaml
kubectl apply -f elasticsearch-deployment.yaml

Nhớ thay thế nội dung chứng chỉ trong ConfigMap và mật khẩu Elasticsearch theo yêu cầu của bạn.
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