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

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](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.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を介してゲートウェイアクセスを確認します
このガイドは、API Gatewayのための安全なHTTPSルーティングをTLSを使用して確保します。これは、CLIを介してDevOpsによって管理される場合でも、APIMコンソールのUIを介して管理される場合でも同様です。