Chuyển tới nội dung chính

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ố

ParameterDescription
--certĐường dẫn đến tệp chứng chỉ công khai
--keyĐường dẫn đến tệp khóa riêng
--namespaceKhô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.secretNamePhải khớp với tên bí mật bạn đã tạo (kong-gateway-cert)
ingress.classPhải là kong (mặc định khi sử dụng Kong Ingress Controller)
backend.service.nameThườ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ướcNhiệm vụ
1Nhận và chuẩn bị chứng chỉ TLS (tls.crt, tls.key)
2Tạo Kubernetes TLS Secret
3Áp dụng TLS qua Kong Ingress Controller hoặc APIM Console
4Xá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.