メインコンテンツまでスキップ
バージョン: v2.0.0

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

パラメータの説明

ParameterDescription
--cert公開証明書ファイルへのパス
--keyプライベートキーファイルへのパス
--namespaceKongがインストールされている名前空間(デフォルトはkong)

サンプルシークレット(生のYAML形式)

apiVersion: v1
kind: Secret
metadata:
name: kong-gateway-cert
namespace: kong
type: 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.classkongである必要があります(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)

概要

ステップタスク
1TLS証明書を取得し、準備する(tls.crt、tls.key)
2Kubernetes TLSシークレットを作成する
3Kong Ingress ControllerまたはAPIMコンソールのいずれかを介してTLSを適用する
4HTTPSおよび一致するDNSを介してゲートウェイアクセスを確認する

このガイドは、CLIまたはAPIMコンソールのUIを介して管理されるかにかかわらず、TLSを使用してAPIゲートウェイの安全なHTTPSルーティングを確保します。