Giới Thiệu
Để bảo mật kết nối của Elasticsearch, việc sử dụng SSL là rất quan trọng. Để thực hiện điều này, bạn cần tạo ra các file keystore và truststore. Bài viết này sẽ hướng dẫn bạn từng bước để tạo các file Java KeyStore (.jks) cần thiết cho cấu hình bảo mật trong Elasticsearch.
Các Bước Thực Hiện
Bước 1: Cài Đặt OpenSSL
Trước hết, bạn cần cài đặt OpenSSL trên hệ thống của mình. Nếu bạn đang sử dụng Ubuntu, bạn có thể thực hiện cài đặt bằng cách sử dụng lệnh sau:
bash
sudo apt-get install openssl
Bước 2: Tạo Khóa và Chứng Chỉ
2.1 Tạo Khóa Riêng
Bạn có thể tạo một khóa riêng bằng lệnh sau:
bash
openssl genrsa -out private.key 2048
2.2 Tạo Chứng Chỉ Tự Ký
Sử dụng khóa riêng vừa tạo để tạo một chứng chỉ tự ký:
bash
openssl req -new -x509 -key private.key -out certificate.crt -days 365
Trong quá trình này, bạn sẽ được yêu cầu nhập thông tin cho chứng chỉ. Hãy chắc chắn rằng bạn điền đầy đủ thông tin.
Bước 3: Tạo Keystore (.jks)
Để tạo keystore từ chứng chỉ và khóa, bạn cần phải có Java Development Kit (JDK) cài đặt trên máy.
3.1 Chuyển Đổi Chứng Chỉ và Khóa thành Định Dạng PKCS12
Bạn cần sử dụng lệnh sau để chuyển đổi chứng chỉ và khóa thành định dạng PKCS12:
bash
openssl pkcs12 -export -in certificate.crt -inkey private.key -out keystore.p12 -name "elasticsearch"
Bạn sẽ được yêu cầu nhập mật khẩu cho file .p12.
3.2 Tạo Keystore (.jks) từ PKCS12
Sử dụng keytool
để chuyển đổi file .p12 thành file .jks:
bash
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS
Bạn sẽ được yêu cầu nhập mật khẩu cho keystore.
Bước 4: Tạo Truststore (.jks)
Để xác thực các chứng chỉ của các node khác trong cluster, bạn có thể tạo truststore như sau:
bash
keytool -import -alias elasticsearch -file certificate.crt -keystore truststore.jks
Bạn cũng sẽ được yêu cầu nhập mật khẩu cho truststore.
Bước 5: Triển Khai vào Kubernetes
Sau khi đã tạo xong keystore.jks
và truststore.jks
, bạn có thể tiến hành tạo secret trong Kubernetes để sử dụng trong cấu hình của Elasticsearch, giúp bảo mật tốt hơn cho dữ liệu của bạn.
Lưu Ý Quan Trọng
Hãy đảm bảo rằng bạn luôn giữ an toàn cho các file khóa và chứng chỉ vì chúng là thành phần nhạy cảm trong bảo mật. Nếu bạn có kế hoạch triển khai một cluster Elasticsearch, hãy lặp lại quy trình này cho mỗi node trong cluster để đảm bảo tính bảo mật tối đa cho hệ thống của mình.
source: viblo