1.4.2. カスタム証明書を使用した re-encrypt ルートの作成
カスタム証明書を使用してトラフィックを保護するには、oc create route コマンドを実行して、TLS 終端を再暗号化するルートを設定します。この設定により、イングレスコントローラーはトラフィックを復号化し、宛先 Pod に転送する前にトラフィックを再暗号化することができます。
この手順では、カスタム証明書を使用して ルート リソースを作成し、TLS 終端を再暗号化します。この手順では、証明書と秘密鍵のペアが現在の作業ディレクトリー内の tls.crt ファイルと tls.key ファイルに格納されていることを前提としています。また、Ingress Controller がサービスの証明書を信頼できるように宛先 CA 証明書を指定する必要もあります。必要な場合には、証明書チェーンを完了するために CA 証明書を指定することもできます。tls.crt、tls.key、cacert.crt、および (オプションで) ca.crt を実際のパス名に置き換えます。frontend を、公開する必要のある Service リソースに置き換えます。www.example.com を適切な名前に置き換えます。
前提条件
- PEM エンコードされたファイルに証明書/キーのペアが必要です。ここで、証明書はルートホストに対して有効となっています。
- 証明書チェーンを完了する PEM エンコードされたファイルの別の CA 証明書が必要です。
- PEM エンコードされたファイルの別の宛先 CA 証明書が必要です。
- 公開する必要のあるサービスが必要です。
パスワードで保護されるキーファイルはサポートされません。キーファイルからパスフレーズを削除するには、以下のコマンドを使用します。
$ openssl rsa -in password_protected_tls.key -out tls.key
手順
reencrypt TLS 終端およびカスタム証明書を使用してセキュアな
Routeリソースを作成します。$ oc create route reencrypt --service=frontend --cert=tls.crt --key=tls.key --dest-ca-cert=destca.crt --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: reencrypt key: |- -----BEGIN PRIVATE KEY----- [...] -----END PRIVATE KEY----- certificate: |- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- caCertificate: |- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- destinationCACertificate: |- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- # ...他のオプションは、
oc create route reencrypt --helpを参照してください。