Method for New TLS Configuration and Renewal for Gateway URL
Hướng dẫn này giải thích cách cấu hình TLS cho URL API Gateway của bạn, bao gồm chuẩn bị chứng chỉ, tạo bí mật Kubernetes và áp dụng TLS thông qua Controller Ingress Kong hoặc Console APIM.
Thiết lập TLS ban đầu (Mới)
Bước đầu tiên là chuẩn bị Chứng chỉ và Khóa TLS. Để làm điều này, bạn cần hai tệp:
- tls.crt: Tệp chứng chỉ công khai
- tls.key: Tệp khóa riêng
Chúng có thể được cấp bởi Let’s Encrypt hoặc một Cơ quan Chứng nhận (CA) tư nhân.
Đăng ký Chứng chỉ TLS dưới dạng Bí mật Kubernetes
Để sử dụng chứng chỉ TLS của bạn trong Kubernetes, bạn phải đăng ký nó dưới dạng một bí mật trong không gian tên nơi Kong được cài đặt (thường là kong).
Ví dụ Dòng lệnh
kubectl create namespace kong # Bỏ qua nếu đã được tạo
kubectl create secret tls kong-gateway-cert \
--namespace kong \
--cert=certificate.crt \
--key=private.key
Mô tả Tham số
Parameter | Description |
---|---|
--cert | Đường dẫn đến tệp chứng chỉ công khai |
--key | Đường dẫn đến tệp khóa riêng |
--namespace | Không gian tên nơi Kong được cài đặt (kong theo mặc định) |
Bí mật Mẫu (Định dạng YAML Thô)
apiVersion: v1
kind: Secret
metadata:
name: kong-gateway-cert
namespace: kong
type: kubernetes.io/tls
data:
tls.crt: <chứng chỉ mã hóa base64>
tls.key: <khóa riêng mã hóa base64>
Áp dụng TLS cho Gateway Kong
Kong hỗ trợ cấu hình TLS bằng cách sử dụng:
- Ingress
- Gateway API
- KongIngress
Phần này giải thích cả phương pháp dựa trên CLI và phương pháp dựa trên Console APIM.
Sử dụng Controller Ingress Kong (Mặc định)
Định nghĩa một tài nguyên Ingress được kích hoạt TLS bằng cách sử dụng bí mật đã tạo trước đó.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kong-ingress
namespace: kong
annotations:
kubernetes.io/ingress.class: kong
spec:
tls:
- hosts:
- api.example.com
secretName: kong-gateway-cert
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kong-proxy
port:
number: 80
Ghi chú Quan trọng:
Point | Explanation |
---|---|
spec.tls.hosts | Định nghĩa DNS sẽ được sử dụng (ví dụ: api.example.com) |
spec.tls.secretName | Phải khớp với tên bí mật bạn đã tạo (kong-gateway-cert) |
ingress.class | Phải là kong (mặc định khi sử dụng Controller Ingress Kong) |
backend.service.name | Thường là kong-proxy nếu được cài đặt qua Helm |
Sử dụng Console APIM
Bạn cũng có thể áp dụng chứng chỉ trực tiếp qua Console APIM. Điều hướng đến Console APIM > Quản lý Gateway > Màn hình Chi tiết Gateway > Cài đặt URL Gateway
Các Trường Nhập:
- URL Gateway: ví dụ, pms.api.skapim.com
- Đường dẫn Cơ sở Toàn cầu: ví dụ, /
- Chỉ HTTPS: Bật ON
- Chứng chỉ TLS:
- tls.crt: Dán nội dung chứng chỉ đầy đủ
- tls.key: Dán khóa riêng đầy đủ
- Lớp Ingress: Chọn lớp phù hợp (ví dụ, nginx, kong)
Tóm tắt
Bước | Nhiệm vụ |
---|---|
1 | Nhận và chuẩn bị chứng chỉ TLS (tls.crt, tls.key) |
2 | Tạo Bí mật TLS Kubernetes |
3 | Áp dụng TLS thông qua Controller Ingress Kong hoặc Console APIM |
4 | Xác nhận truy cập gateway qua HTTPS và DNS khớp |
Hướng dẫn này đảm bảo định tuyến HTTPS an toàn cho API Gateway của bạn bằng cách sử dụng TLS, cho dù được quản lý bởi DevOps qua CLI hay qua UI trong Console APIM.