1.4. 高度なルートの作成
アプリケーションのトラフィックを保護し、クライアントにカスタム証明書を提供するには、エッジ、パススルー、または再暗号化 TLS 終端を使用してルートを設定します。これらの方法を用いることで、きめ細かな暗号化ルールを定義し、特定のセキュリティー要件に従ってトラフィックが復号化および再暗号化されるようにすることができます。
1.4.1. カスタム証明書を使用した edge ルートの作成 リンクのコピーリンクがクリップボードにコピーされました!
カスタム証明書を使用してトラフィックを保護するには、oc create route コマンドを実行して、エッジ TLS 終端を含むルートを設定します。この設定では、Ingress Controller で暗号化を終了させてから、宛先 Pod にトラフィックを転送します。
ルートは、Ingress Controller がルートに使用する TLS 証明書およびキーを指定します。
この手順では、カスタム証明書とエッジ TLS 終端を備えた ルート リソースを作成します。この手順では、証明書と秘密鍵のペアが現在の作業ディレクトリー内の tls.crt ファイルと tls.key ファイルに格納されていることを前提としています。必要な場合には、証明書チェーンを完了するために CA 証明書を指定することもできます。tls.crt、tls.key、および (オプションで) ca.crt を実際のパス名に置き換えます。frontend を、公開する必要のあるサービスの名前に置き換えます。www.example.com を適切な名前に置き換えます。
前提条件
- PEM エンコードされたファイルに証明書/キーのペアが必要です。ここで、証明書はルートホストに対して有効となっています。
- 証明書チェーンを完成させるために、PEM エンコードされたファイル内に別の CA 証明書が存在する場合があります。
- 公開する必要のあるサービスが必要です。
パスワードで保護されるキーファイルはサポートされません。キーファイルからパスフレーズを削除するには、以下のコマンドを使用します。
$ openssl rsa -in password_protected_tls.key -out tls.key
手順
edge TLS termination およびカスタム証明書を使用して、セキュアな
Routeリソースを作成します。$ oc create route edge --service=frontend --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=www.example.com生成された
Routeリソースを調べると、そのリソースには次の例のような設定が含まれているはずです。セキュアなルートの YAML 定義
apiVersion: route.openshift.io/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----- # ...他のオプションは、
oc create route edge --helpを参照してください。