2.6.3.2. 証明書の確認
Bookinfo サンプルアプリケーションを使用して、証明書が正しくマウントされていることを確認します。最初に、マウントされた証明書を取得します。次に、Pod にマウントされた証明書を確認します。
Pod 名を変数
RATINGSPOD
に保存します。$ RATINGSPOD=`oc get pods -l app=ratings -o jsonpath='{.items[0].metadata.name}'`
以下のコマンドを実行して、プロキシーにマウントされている証明書を取得します。
$ oc exec -it $RATINGSPOD -c istio-proxy -- /bin/cat /etc/certs/root-cert.pem > /tmp/pod-root-cert.pem
/tmp/pod-root-cert.pem
ファイルには、Pod に伝播されるルート証明書が含まれます。$ oc exec -it $RATINGSPOD -c istio-proxy -- /bin/cat /etc/certs/cert-chain.pem > /tmp/pod-cert-chain.pem
/tmp/pod-cert-chain.pem
ファイルには、ワークロード証明書と Pod に伝播される CA 証明書が含まれます。ルート証明書が Operator によって指定される証明書と同じであることを確認します。
<path>
を証明書へのパスに置き換えます。$ openssl x509 -in <path>/root-cert.pem -text -noout > /tmp/root-cert.crt.txt
$ openssl x509 -in /tmp/pod-root-cert.pem -text -noout > /tmp/pod-root-cert.crt.txt
$ diff /tmp/root-cert.crt.txt /tmp/pod-root-cert.crt.txt
出力が空になることが予想されます。
CA 証明書が Operator で指定された証明書と同じであることを確認します。
<path>
を証明書へのパスに置き換えます。$ sed '0,/^-----END CERTIFICATE-----/d' /tmp/pod-cert-chain.pem > /tmp/pod-cert-chain-ca.pem
$ openssl x509 -in <path>/ca-cert.pem -text -noout > /tmp/ca-cert.crt.txt
$ openssl x509 -in /tmp/pod-cert-chain-ca.pem -text -noout > /tmp/pod-cert-chain-ca.crt.txt
$ diff /tmp/ca-cert.crt.txt /tmp/pod-cert-chain-ca.crt.txt
出力が空になることが予想されます。
ルート証明書からワークロード証明書への証明書チェーンを確認します。
<path>
を証明書へのパスに置き換えます。$ head -n 21 /tmp/pod-cert-chain.pem > /tmp/pod-cert-chain-workload.pem
$ openssl verify -CAfile <(cat <path>/ca-cert.pem <path>/root-cert.pem) /tmp/pod-cert-chain-workload.pem
出力例
/tmp/pod-cert-chain-workload.pem: OK