Method for New TLS Configuration and Renewal for Gateway URL
このガイドでは、API Gateway URLのTLSを構成する方法について説明します。証明書の準備、Kubernetesシークレットの作成、およびKong Ingress ControllerまたはAPIM Consoleを通じてTLSを適用する方法をカバーします。
初期TLSセットアップ(新規)
最初のステップは、TLS証明書とキーを準備することです。これを行うには、2つのファイルが必要です:
- tls.crt: 公開証明書ファイル
- tls.key: プライベートキーファイル
これらはLet’s Encryptまたはプライベート証明書機関(CA)によって発行されることがあります。
KubernetesシークレットとしてTLS証明書を登録する
KubernetesでTLS証明書を使用するには、Kongがインストールされている名前空間(通常はkong)にシークレットとして登録する必要があります。
コマンドラインの例
kubectl create namespace kong # すでに作成されている場合はスキップ
kubectl create secret tls kong-gateway-cert \
--namespace kong \
--cert=certificate.crt \
--key=private.key
パラメータの説明
Parameter | Description |
---|---|
--cert | 公開証明書ファイルへのパス |
--key | プライベートキーファイルへのパス |
--namespace | Kongがインストールされている名前空間(デフォルトはkong) |
サンプルシークレット(生のYAML形式)
apiVersion: v1
kind: Secret
metadata:
name: kong-gateway-cert
namespace: kong
type: [kubernetes.io/tls](http://kubernetes.io/tls)
data:
tls.crt: <base64エンコードされた証明書>
tls.key: <base64エンコードされたプライベートキー>
Kong GatewayにTLSを適用する
Kongは次の方法でTLS構成をサポートしています:
- Ingress
- Gateway API
- KongIngress
このセクションでは、CLIベースおよびAPIM Consoleベースの方法の両方について説明します。
Kong Ingress Controller (デフォルト)の使用
以前に作成したシークレットを使用して、TLS対応のIngressリソースを定義します。
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
重要な注意事項:
Point | Explanation |
---|---|
spec.tls.hosts | 使用するDNSを定義します(例: api.example.com) |
spec.tls.secretName | 作成したシークレット名と一致する必要があります(kong-gateway-cert) |
ingress.class | kongである必要があります(Kong Ingress Controllerを使用する場合のデフォルト) |
backend.service.name | 通常、Helmを介してインストールされた場合はkong-proxyです |
APIMコンソールの使用
APIMコンソールを介して直接証明書を適用することもできます。APIMコンソール > ゲートウェイ管理 > ゲートウェイ詳細画面 > ゲートウェイURL設定に移動します。
入力フィールド:
- ゲートウェイURL: 例: pms.api.skapim.com
- グローバルベースパス: 例: /
- HTTPSのみ: ONに切り替え
- TLS証明書:
- tls.crt: 証明書の完全な内容を貼り付けます
- tls.key: 完全な秘密鍵を貼り付けます
- Ingressクラス: 適切なクラスを選択します(例: nginx, kong)
概要
ステップ | タスク |
---|---|
1 | TLS証明書を取得し、準備します(tls.crt、tls.key) |
2 | Kubernetes TLSシークレットを作成します |
3 | Kong Ingress ControllerまたはAPIMコンソールのいずれかを介してTLSを適用します |
4 | HTTPSおよび一致するDNSを介してゲートウェイアクセスを確認します |
このガイドは、API Gatewayのための安全なHTTPSルーティングをTLSを使用して確保します。これは、CLIを介してDevOpsによって管理される場合でも、APIMコンソールのUIを介して管理される場合でも同様です。 |