1.13.4.2. 인증서 확인
Bookinfo 샘플 애플리케이션을 사용하여 CA에 연결된 인증서로 워크로드 인증서에 서명하는지 확인합니다. 이를 위해서는 openssl
이 시스템에 설치되어 있어야 합니다.
bookinfo 워크로드에서 인증서를 추출하려면 다음 명령을 사용합니다.
$ sleep 60 $ oc -n bookinfo exec "$(oc -n bookinfo get pod -l app=productpage -o jsonpath={.items..metadata.name})" -c istio-proxy -- openssl s_client -showcerts -connect details:9080 > bookinfo-proxy-cert.txt $ sed -n '/-----BEGIN CERTIFICATE-----/{:start /-----END CERTIFICATE-----/!{N;b start};/.*/p}' bookinfo-proxy-cert.txt > certs.pem $ awk 'BEGIN {counter=0;} /BEGIN CERT/{counter++} { print > "proxy-cert-" counter ".pem"}' < certs.pem
명령을 실행한 후 작업 디렉터리에
proxy-cert-1.pem
,proxy-cert-2.pem
및proxy-cert-3.pem
의 3개의 파일이 있어야 합니다.루트 인증서가 관리자가 지정한 것과 동일한지 확인합니다.
<path>
를 인증서 경로로 교체합니다.$ openssl x509 -in <path>/root-cert.pem -text -noout > /tmp/root-cert.crt.txt
터미널 창에서 다음 구문을 실행합니다.
$ openssl x509 -in ./proxy-cert-3.pem -text -noout > /tmp/pod-root-cert.crt.txt
터미널 창에서 다음 구문을 실행하여 인증서를 비교합니다.
$ diff -s /tmp/root-cert.crt.txt /tmp/pod-root-cert.crt.txt
다음과 같은 결과가 표시됩니다.
/tmp/root-cert.crt.txt 및 /tmp/pod-root-cert.crt.txt 파일은 동일합니다.
CA 인증서가 관리자가 지정한 것과 동일한지 확인합니다.
<path>
를 인증서 경로로 교체합니다.$ openssl x509 -in <path>/ca-cert.pem -text -noout > /tmp/ca-cert.crt.txt
터미널 창에서 다음 구문을 실행합니다.
$ openssl x509 -in ./proxy-cert-2.pem -text -noout > /tmp/pod-cert-chain-ca.crt.txt
터미널 창에서 다음 구문을 실행하여 인증서를 비교합니다.
$ diff -s /tmp/ca-cert.crt.txt /tmp/pod-cert-chain-ca.crt.txt
다음과 같은 결과가 표시됩니다.
/tmp/ca-cert.crt.txt 및 /tmp/pod-cert-chain-ca.crt.txt 파일은 동일합니다.
루트 인증서에서 워크로드 인증서로의 인증서 체인을 확인합니다.
<path>
를 인증서 경로로 교체합니다.$ openssl verify -CAfile <(cat <path>/ca-cert.pem <path>/root-cert.pem) ./proxy-cert-1.pem
/proxy-cert-1.pem 결과가 표시됩니다. OK