1.13.4.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 /var/run/secrets/istio/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