Thêm chứng chỉ SSL/TLS vào Kubernetes Cluster

Them Chung Chi Ssl Tls Vao Kubernetes Cluster



Chứng chỉ SSL được sử dụng để bảo mật ứng dụng được tạo trên Kubernetes vì ​​sự an toàn trong tương lai. Chúng ta hãy lấy một chứng chỉ bảo mật khác, TLS, có chứa một khóa riêng rất an toàn. Chứng chỉ được tạo bằng chứng chỉ:  API K8r.io. Chúng tôi sẽ dạy về cấu hình chứng chỉ SSL với sự trợ giúp của các ví dụ chi tiết. Hãy để chúng tôi bắt đầu với chứng chỉ SSL trong Kubernetes. Chứng chỉ SSL rất quan trọng đối với trình duyệt. Trình duyệt, với sự trợ giúp của chứng chỉ SSL và TLS, tạo kết nối an toàn với các dịch vụ Kubernetes.

Điều kiện tiên quyết:

Mọi người dùng phải có phiên bản hệ thống mới nhất của Ubuntu. Người dùng hệ điều hành Windows cài đặt một hộp ảo và thêm Ubuntu hoặc Linux hầu như vào hệ thống. Người dùng phải quen thuộc với Kubernetes, dòng lệnh kubectl, nhóm và cụm cũng như biết DNS cụm để hiểu chủ đề này tốt hơn.







Chúng ta hãy xem sơ qua về cấu hình chứng chỉ SSL trong Kubernetes bằng cách chia toàn bộ quy trình thành các bước khác nhau.



Bước 1: Khởi động Bảng điều khiển Kubernetes

Chúng tôi muốn có một môi trường trong ứng dụng của mình, nơi chúng tôi có thể chạy các lệnh Kubernetes để thực hiện các tác vụ Kubernetes. Do đó, Kubernetes cung cấp cho chúng tôi một vùng chứa dựa trên cục bộ có tên là “minikube”. Tại mỗi lần khởi động ứng dụng Kubernetes, chúng ta sẽ khởi động một minikube trong Kubernetes, về cơ bản là một thiết bị đầu cuối, cần thiết để chạy các lệnh Kubernetes. Trong bước này, chúng tôi chạy lệnh để khởi tạo Minikube, đó là:



> bắt đầu minikube

Khi chúng tôi chạy lệnh này trên thiết bị đầu cuối hệ thống của mình, quá trình thực thi lệnh sẽ bắt đầu bằng cách nhấn nút enter. Lệnh này hiển thị cho chúng tôi kết quả ảnh chụp màn hình được đính kèm bên dưới.





Bước 2: Tạo yêu cầu ký chứng chỉ

Sau khi tạo một cụm bằng cách sử dụng Minikube, bây giờ chúng tôi muốn tạo một yêu cầu ký chứng chỉ. Để đổi lấy hành động này, chúng tôi chạy lệnh để ký yêu cầu chứng chỉ và tạo khóa riêng.



> con mèo << EOF | mã gen cfssl - | cfssljson -chỉ cần người phục vụ

Sau khi thực hiện truy vấn, yêu cầu được tạo thành công bằng khóa riêng. Kết quả được đính kèm ở trên dưới dạng ảnh chụp màn hình.

Bước 3: Tạo Bản kê khai yêu cầu ký chứng chỉ trong tệp YAML

Trong bước này, chúng tôi sẽ tạo tệp kê khai tệp YAML để tạo CSR trong Kubernetes. Chúng tôi chạy lệnh dưới đây:

> con mèo << EOF | áp dụng kubectl -f

Sau khi thực thi lệnh này, tệp YAML được tạo thành công. Và chúng tôi gửi nó đến máy chủ API, như trong ảnh chụp màn hình đính kèm.

Bước 4:  Nhận trạng thái yêu cầu ký chứng chỉ

Trong bước này, chúng ta sẽ xem xét trạng thái CSR như đã thấy thông qua API. Chúng ta có thể chạy lệnh đã cho để truy xuất trạng thái của yêu cầu chứng chỉ.

> kubectl mô tả csv my-svc.my-namespace

Khi lệnh được chạy, trạng thái CSR được hiển thị ở đầu ra, như thể hiện trong ảnh chụp màn hình đính kèm. Trạng thái của CSR là 'đang chờ xử lý' và trạng thái này đến từ API. Tên của tệp là my-svc. không gian tên của tôi và các chú thích, yêu cầu người dùng và chủ đề, tên thay thế chủ đề có tên DNS và địa chỉ IP, sự kiện, v.v. được bao gồm trong mô tả CSR. Trạng thái là 'đang chờ xử lý', có nghĩa là chứng chỉ CSR chưa được phê duyệt.

Bước 5:  Phê duyệt chứng chỉ CSR

Trạng thái của chứng chỉ CSR vẫn đang chờ xử lý. Vì vậy, trong trường hợp này, chúng tôi sẽ gửi truy vấn tới API của Kubernetes để phê duyệt chứng chỉ CSR. Chúng tôi chạy lệnh này để phê duyệt:

> chứng chỉ kubectl phê duyệt my-svc .my-namespace

Lệnh hiển thị đầu ra sau khi thực hiện. Một người được ủy quyền, chẳng hạn như quản trị Kubernetes, phê duyệt chứng chỉ CSR. Vì chúng tôi là người dùng được ủy quyền, chúng tôi tạo các tệp YAML. Do đó, chứng chỉ CSR dễ dàng được phê duyệt bằng lệnh, như thể hiện trong ảnh chụp màn hình bên dưới để làm rõ.

my-svc.my-namespace được phê duyệt thành công thông qua API tests.k8s.io.

Bước 6: Lấy Chứng chỉ CSR trong Kubernetes

Chúng tôi hiện đang chờ xem liệu chứng chỉ CSR đã được phê duyệt hay chưa. Vì vậy, chúng tôi sẽ chạy lệnh để lấy danh sách tất cả các chứng chỉ CSR hiện đang hoạt động trong hệ thống. Chạy lệnh:

> kubectl lấy csr

Tên của chứng chỉ CSR đã được phê duyệt trong Kubernetes được hiển thị trong ảnh chụp màn hình đính kèm. Lệnh này trả về tên, tuổi, tên người ký, người yêu cầu, thời hạn được yêu cầu và tình trạng của chứng chỉ CSR.

Bước 7: Ký chứng chỉ bằng cách tạo cơ quan

Trong bước này, chúng ta sẽ xem cách các chứng chỉ được ký trong Kubernetes. Chứng chỉ SSL đã được phê duyệt nhưng chưa được ký. Tên của người ký xuất hiện trên chứng chỉ trong Kubernetes. Chúng tôi chạy lệnh thông qua đó người ký được yêu cầu ký chứng chỉ. Lệnh là:

> con mèo << EOF | cfssl genart -initca - | cfssljson – trần ca

{

'CN' : 'Người ký ví dụ của tôi' ,
'Chìa khóa' : {
'thứ gì đó' : 'rsa' ,
'kích thước' : 2048
}


}

EOF

Lệnh được chạy để ký chứng chỉ kỹ thuật số. Người ký ký các chứng chỉ được yêu cầu và cập nhật trạng thái API bằng lệnh, “Chứng chỉ SSL”. Chúng tôi đã tạo chứng chỉ ký bằng cách chạy lệnh trên và kết quả được hiển thị trong ảnh chụp màn hình đính kèm. Một số sê-ri duy nhất đã được sử dụng thành công để ký chứng chỉ.

Bước 8:  Tạo tệp JSON để cấp chứng chỉ

Sau khi ký chứng chỉ, chúng tôi tạo một tệp JSON từ đó chúng tôi cấp chứng chỉ. Chúng tôi sẽ tạo một tệp JSON bằng cách chạy lệnh sau với ảnh chụp màn hình đính kèm:

> nano kýfile.json

Sau khi lệnh được thực thi, tệp JSON được tạo như có thể xem trong ảnh chụp màn hình bên dưới.

Bước 9:  Sử dụng Server-Signing-config.json

Trong bước này, chúng tôi sử dụng tệp cấu hình máy chủ ký trong JSON để ký và cấp chứng chỉ. Chúng tôi chạy lệnh ký chứng chỉ bằng tệp khóa riêng.

> kubectl get csr my-svc.my-namespace -Các đường dẫn json =' { .spec.request } | \base64 --decode | \ cfssl dấu -cái đó ca.pem -ca ca-key ca-key.pem -config máy chủ-ký-config.json | \cfssljson -chỉ cần ca-sign-server

Sau lệnh này, chứng chỉ đã được xác định trong tệp json được ký. Số sê-ri của CSR này được tạo. Tại đây, chúng tôi tạo một tệp chứng chỉ phân phối đã ký tên là “ca-signed-server.pem.”

Bước 10: Tải lên chứng chỉ đã ký trong Đối tượng API

Trong bước này, chúng tôi tải chứng chỉ đã ký lên trạng thái API đang chờ xử lý mà chúng tôi đã thấy ở trên. Lệnh để tải lên là:

> kubectl get csr my-svc.my-namespace -Các json | \  jq '.status.chứng chỉ = '

'
$ ( base64 ca-signed-server.pem | tr -d '\N' ) ''' | \

> kubectl thay thế --raw / apis / chứng chỉ.k8s.io / v1 / yêu cầu ký giấy chứng nhận / không gian tên my-svc.my-   / tình trạng -f -

Khi lệnh này được thực thi, chứng chỉ đã ký sẽ được tải lên thành công bất cứ khi nào CSR được phê duyệt. Ảnh chụp màn hình được đính kèm ở trên cho chúng ta thấy định dạng JSON tải lên chứng chỉ đã ký dưới dạng đối tượng API.

Bước 11: Đăng ký các chứng chỉ được phê duyệt trong Kubernetes

Chúng tôi lại chạy lệnh để hiển thị các chứng chỉ đã được phê duyệt trong Kubernetes.

> kubectl lấy csr

Chứng chỉ đã được phê duyệt và phát hành thành công, như thể hiện trong ảnh chụp màn hình ở trên.

Bước 12: Lưu Chứng chỉ vào Hệ thống

Trong bước này, chúng tôi sẽ tìm hiểu cách tải xuống chứng chỉ đã ký và sử dụng thành công chứng chỉ đó trong hệ thống của chúng tôi. Chúng tôi dễ dàng triển khai chứng chỉ trên máy chủ. Lệnh là:

> kubectl get csr my-svc.my-namespace -Các đường dẫn json = '{.status.certificate}' \

| cơ sở64 --decode > máy chủ.crt

Bước 13:  Điền vào Chứng chỉ

Trong bước này, chúng ta sẽ tìm hiểu cách điền chứng chỉ trên máy chủ để chúng ta có thể dễ dàng sử dụng chứng chỉ để bảo mật web. Chúng tôi chạy lệnh:

Kalsoom @ Kalsoom > kubectl tạo máy chủ tls bí mật --cert máy chủ.crt --Chìa khóa máy chủ-key.pem

Ảnh chụp màn hình được đính kèm ở trên cho chúng ta thấy rằng máy chủ bí mật hoặc bảo mật TLS được tạo thành công với tên cert server.cr và có khóa riêng server-key.pem.

Bước 14: Cấu hình Bản đồ Chứng chỉ

Trong bước này, chúng tôi sẽ định cấu hình chứng chỉ để đảm bảo rằng đó là chứng chỉ phục vụ an toàn bằng cách chạy lệnh bên dưới:

> kubectl tạo ví dụ sơ đồ cấu hình-phục vụ-ca --từ-tệp ca.crt=ca.pem

Như được hiển thị trong ảnh chụp màn hình đính kèm, config map/example-serving-ca được tạo thành công trong Kubernetes để có kết nối an toàn trên máy chủ web.

Phần kết luận

Chứng chỉ SSL được sử dụng để cung cấp bảo mật cho các ứng dụng Kubernetes trên máy chủ web. Chúng tôi đã giải thích chi tiết từng bước để bạn hiểu. Bạn cũng có thể chạy các lệnh tương tự trên ứng dụng Kubernetes của mình để cài đặt chứng chỉ SSL.