Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

16.2. ルートの作成

Web コンソールまたは CLI を使用して、セキュリティー保護されていないルートとセキュリティー保護されているルートを作成できます。

Web コンソールを使用してナビゲーションの Applications セクションの下にある Routes ページに移動します。

Create Route をクリックしてプロジェクト内でルートを定義し、作成します。

図16.1 Web コンソールを使用したルートの作成

Creating a Route Using the Web Console

以下の例では、CLI を使用して非セキュアなルートを作成します。

$ oc expose svc/frontend --hostname=www.example.com

新規ルートは、--name オプションを使用して名前を指定しない限りサービスから名前を継承します。

上記で作成された非セキュアなルートの YAML 定義

apiVersion: v1
kind: Route
metadata:
  name: frontend
spec:
  host: www.example.com
  path: "/test" 1
  to:
    kind: Service
    name: frontend

1
パスベースのルーティング については、URL に対して比較対象となるパスコンポーネントを指定します。

CLI を使用したルートの設定についての情報は、ルートタイプ を参照してください。

非セキュアなルートはデフォルト設定であるため、これが最も簡単なセットアップになります。ただし、セキュリティー保護されたルート は、接続がプライベートのままになるようにセキュリティーを提供します。キーと証明書 (別々に生成し、署名する必要のある PEM 形式のファイル) で暗号化されたセキュリティー保護された HTTPS ルートを作成するには、create route コマンドを使用し、オプションで証明書およびキーを指定できます。

注記

TLS は、HTTPS および他の暗号化されたプロトコルにおける SSL の代わりとして使用されます。

$ oc create route edge --service=frontend \
    --cert=${MASTER_CONFIG_DIR}/ca.crt \
    --key=${MASTER_CONFIG_DIR}/ca.key \
    --ca-cert=${MASTER_CONFIG_DIR}/ca.crt \
    --hostname=www.example.com

上記で作成されたセキュリティー保護されたルートの YAML 定義

apiVersion: v1
kind: Route
metadata:
  name: frontend
spec:
  host: www.example.com
  to:
    kind: Service
    name: frontend
  tls:
    termination: edge
    key: |-
      -----BEGIN PRIVATE KEY-----
      [...]
      -----END PRIVATE KEY-----
    certificate: |-
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    caCertificate: |-
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----

現時点で、パスワードで保護されたキーファイルはサポートされていません。HAProxy は開始時にパスワードを求めるプロンプトを出しますが、このプロセスを自動化する方法はありません。キーファイルからパスフレーズを削除するために、以下を実行できます。

# openssl rsa -in <passwordProtectedKey.key> -out <new.key>

キーと証明書を指定せずにセキュリティー保護されたルートを作成できます。 この場合、ルーターのデフォルト証明書 が TLS 終端に使用されます。

注記

OpenShift Container Platform の TLS 終端は、カスタム証明書を提供する SNI に依存します。ポート 443 で受信される SNI 以外のトラフィックは TLS 終端で処理され、要求されるホスト名に一致しない可能性のあるデフォルト証明書により検証エラーが生じる可能性があります。

すべてのタイプの TLS 終端 および パスベースのルーティング についての詳細は、アーキテクチャー セクションを参照してください。