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 APIM Console.
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](http://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 Kong Gateway
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 APIM Console.
Sử dụng Kong Ingress Controller (Mặc định)
Định nghĩa một tài nguyên Ingress được kích hoạt TLS sử dụng bí mật đã được 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 Kong Ingress Controller) |
backend.service.name | Thường là kong-proxy nếu được cài đặt qua Helm |
Sử dụng APIM Console
Bạn cũng có thể áp dụng chứng chỉ trực tiếp qua APIM Console. Điều hướng đến APIM Console > Quản lý Gateway > Màn hình Chi tiết Gateway > Cài đặt URL Gateway
Các trường đầu vào:
- URL Gateway: ví dụ, pms.api.skapim.com
- Global BasePath: 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 Kubernetes TLS Secret |
3 | Áp dụng TLS qua Kong Ingress Controller hoặc APIM Console |
4 | Xác nhận truy cập gateway qua HTTPS và DNS khớp |
Hướng dẫn này đảm bảo việc đị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 thông qua CLI hay qua UI trong APIM Console. |