- vừa được xem lúc

Cấu hình chứng chỉ SSL để qua được yêu cầu token Kibana

0 0 5

Người đăng: Đồng Dương

Theo Viblo Asia

Để tạo chứng chỉ và khóa riêng cho Elasticsearch bằng cách sử dụng openssl, bạn có thể làm theo các bước sau:

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:

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 một tệp yêu cầu chứng chỉ (CSR). Đây là nơi bạn cung cấp thông tin về tổ chức và miền của mình:

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

Bạn sẽ được yêu cầu nhập thông tin như quốc gia, tiểu bang, tên tổ chức, tên miền (CN), v.v. Ví dụ:

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

  1. 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ý:
openssl x509 -req -days 365 -in elasticsearch.csr -signkey elasticsearch.key -out elasticsearch.crt

Dưới đây là một ví dụ cấu hình file Deployment cho Elasticsearch trên Kubernetes, kèm theo cấu hình ConfigMap để lưu trữ chứng chỉ bảo mật (TLS certificates) cho Elasticsearch.

1. ConfigMap để lưu trữ chứng chỉ

Bạn sẽ cần tạo một ConfigMap để lưu các chứng chỉ và khóa riêng tư sử dụng trong Elasticsearch. Giả sử bạn có tệp chứng chỉ elasticsearch.crt và khóa riêng tư elasticsearch.key, chúng ta sẽ lưu chúng vào ConfigMap.

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----- 

2. File Deployment cho Elasticsearch

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

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 

Giải thích cấu hình: ConfigMap lưu chứng chỉ: Chúng ta tạo một ConfigMap có chứa chứng chỉ và khóa riêng tư sử dụng để thiết lập SSL cho Elasticsearch.

Deployment cho Elasticsearch:

Environment Variables: Một số biến môi trường được sử dụng để bật tính năng bảo mật của Elasticsearch (xpack.security.enabled, xpack.security.transport.ssl.enabled, xpack.security.http.ssl.enabled). Volumes: Sử dụng volumeMounts để gắn chứng chỉ từ ConfigMap vào container Elasticsearch tại thư mục /usr/share/elasticsearch/config/certs. Dịch vụ (Service): Expose Elasticsearch với 2 cổng: 9200 cho HTTP và 9300 cho giao thức Transport.

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

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.

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Elastic Stack] - Xây dựng, triển khai giám sát và quản lý tập trung request logs theo kiến trúc microservices

Elastic Stack - ELK là một nhóm các dự án mã nguồn mở (open source) được triển khai nhằm mục đích thu thập, phân tích, thống kê, tìm kiếm và trực quan hóa dòng dữ liệu (Data Stream) theo thời gian thự

0 0 51

- vừa được xem lúc

Elastic Stack: Tìm hiểu về công cụ phân tích và trực quan hóa dữ liệu

Giới thiệu. Trong thế giới công nghệ hiện đại, việc xử lý và phân tích dữ liệu trở nên ngày càng quan trọng.

0 0 8

- vừa được xem lúc

Làm thế nào để tạo Index templates trong Elasticsearch.

I. Giới thiệu về Elasticsearch và Index Templates. A. Elasticsearch là gì.

0 0 13

- vừa được xem lúc

Truy vấn phức hợp (Compound Query) trong Elasticsearch là gì?

I. Truy vấn phức hợp (Compound Query) trong Elasticsearch. A. Định nghĩa và mục đích của truy vấn phức hợp:.

0 0 16

- vừa được xem lúc

Làm thế nào sử dụng truy vấn Dis_max trong Elasticsearch

I. Giới thiệu về Elasticsearch. A. Khái niệm về Elasticsearch.

0 0 9

- vừa được xem lúc

Kiến Trúc Của Elasticsearch Có Gì Hấp Dẫn?

1. Giới Thiệu Chung Kiến trúc Elasticsearch.

0 0 16