コンテンツへスキップ

DomainMappingでカスタムTLS証明書を使用する

機能の可用性:Knative v0.24以降ベータ版
  • ベータ版機能は十分にテストされており、有効化しても安全とみなされます。全体的な機能のサポートは削除されませんが、詳細は非互換な方法で変更される可能性があります。

既存のTLS証明書への参照を提供することにより、DomainMappingにその証明書を使用してマップされたサービスを保護するように指示できます。external-domain-tlsを使用した自動証明書作成は、この機能を使用するサービスではスキップされることに注意してください。

前提条件

  • カスタムドメインの設定の手順に従って、動作するDomainMappingが既に用意されている必要があります。
  • 認証局プロバイダーからのTLS証明書、または自己署名証明書が必要です。

手順

  1. 認証局プロバイダーからcertファイルとkeyファイルを取得したか、自己署名証明書を持っていると仮定して、次のコマンドを実行して、プレーンなKubernetes TLSシークレットを作成します。

    kubectlを使用してシークレットを作成します

    kubectl create secret tls <tls-secret-name> --cert=path/to/cert/file --key=path/to/key/file
    
    ここで、<tls-secret-name>は作成されるシークレットオブジェクトの名前です。

  2. DomainMapping YAMLファイルを更新して、新しく作成されたシークレットを使用します。

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: <domain-name>
      namespace: <namespace>
    spec:
      ref:
        name: <service-name>
        kind: Service
        apiVersion: serving.knative.dev/v1
    # tls block specifies the secret to be used
      tls:
        secretName: <tls-secret-name>
    
    ここで

    • <tls-secret-name>は、前の手順で作成されたTLSシークレットの名前です。
    • <domain-name>は、サービスをマップするドメイン名です。
    • <namespace>は、DomainMappingオブジェクトとServiceオブジェクトの両方を含む名前空間です。
    • <service-name>は、ドメインにマップされるサービスの名前です。
  3. DomainMappingの状態を確認します

    1. 次のコマンドを実行して状態を確認します
      kubectl get domainmapping <domain-name>
      
      状態のURL列には、スキームがhttpsに更新されたマップされたドメインが表示されます。
      NAME                      URL                               READY   REASON
      <domain-name>             https://<domain-name>             True
      
    2. サービスが公開されている場合は、次のコマンドを実行して利用可能であることを確認します。
      curl https://<domain-name>
      
      証明書が自己署名されている場合は、curlコマンドに-kフラグを追加して検証をスキップします。

サイトトラフィックを理解するために、分析とCookieを使用しています。サイトの使用に関する情報は、その目的でGoogleと共有されます。詳細はこちら。