メインコンテンツまでスキップ

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 Consoleを使用する

APIM Consoleを介して直接証明書を適用することもできます。APIM Console > Gateway Management > Gateway Detail Screen > Gateway URL Settingsに移動します。

入力フィールド:

  • Gateway URL: 例:pms.api.skapim.com
  • Global BasePath: 例:/
  • HTTPS Only: ONに切り替え
  • TLS証明書:
    • tls.crt: 完全な証明書の内容を貼り付け
    • tls.key: 完全なプライベートキーを貼り付け
  • Ingress Class: 適切なクラスを選択(例:nginx、kong)

まとめ

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

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