17.2. ルートの作成
Web コンソールまたは CLI を使用して、セキュリティー保護されていないルートとセキュリティー保護されているルートを作成できます。
Web コンソールを使用してナビゲーションの Applications セクションの下にある Routes ページに移動します。
Create Route をクリックしてプロジェクト内でルートを定義し、作成します。
図17.1 Web コンソールを使用したルートの作成
以下の例では、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 終端 および パスベースのルーティング についての詳細は、「アーキテクチャー」セクション を参照してください。