인프런 커뮤니티 질문&답변

wwwjkscom님의 프로필 이미지
wwwjkscom

작성한 질문수

데브옵스(DevOps)를 위한 쿠버네티스 마스터

TLS 인증서를 활용한 통신 이해

인증서관련

작성

·

310

0

강의를 듣다가 궁금한점이 있어서 문의 드립니다.
TLS통신에 대한 전반적인것은 이해가 가는데요..
강의중에서도 나오지만 etcdctl 을 실행할때 총 3개의 인자를 주었습니다. (ca인증서, server 인증서, server key)
왜 3개를 사용하는지 좀 더 자세히 알 수 있을까요..!?
etcdctl을 클라이언트로 생각하고, etcd를 server로 생각해야하는지..
이렇게 생각한다면 etcd의 개인키를 왜 인자로주는지..등등 제가 잘못 이해하는건지..
미리 감사합니다!

답변 1

1

안녕하세요 강사 최일선입니다.

인증서 2개와 개인키 하나가 어떻게 사용되는지 궁금하시군요.

1. 먼저 CA 인증서는 사용자가 정당한 사용자인지 인증하는데 사용됩니다.

다음은 KISA에서 가져온 내용입니다.

"공인인증기관(Certificate Authority : CA)은 전자서명법에 따라 거래사실을 공정하게 관리ㆍ보증할 수 있는 공신력과 인증시스템을 안전하게 구축ㆍ관리할 수 있는 인력, 기술력, 자금력을 갖춘 기관을 말합니다."

2. 클라이언트가  왜 서버의 Certificate와 키를 사용하는지를 물으셧는데 사실 단순합니다. "etcd 권한이 있기 때문에 사용했다"고 보시면 될 듯 합니다. 물론 적절한 권한이 다른 키와 Cert를 사용하셔도 됩니다. 다음 명령을 사용하면 현재 etcd 컨테이너가 어떤 인자로 실행됐는지를 확인할 수 있습니다.

ps -aux | grep -i etcd

감사합니다!

wwwjkscom님의 프로필 이미지
wwwjkscom
질문자

답변 감사합니다! 
답변주신 내용에도 이해가 안되는데,, 


1번 같은 경우 정당한 사용자를 ca인증서로 어떻게 하는걸까요..?
TLS쪽에서 이 서버의 인증서가 CA에서 발급한 정당한 인증서를 확인하는 방법이, CA의 비밀키로 암호화된 인증서가  CA의 공개키로 열릴때 이게 검증되는것으로 알고있는데.. CA.crt 인증서로도 정당한 사용자인지 확인이 가능한지 궁금합니다..

2번은 etcd 권한이 있기때문이라고 말씀해주셨는데,, 여기에 입력한 server.crt는 서버의 인증서구, server.key는 서버의 개인키가 맞는걸까요??

이 인증 방식은 TLS 통신 중에서 MTLS 방식이라고 부르는데요. 구글에 mtls athentication이라고 치면 많이 나옵니다ㅎㅎ

다음 사이트 그림이 잘 그린 것 같아서 첨부드립니다.

https://github.com/smallstep/autocert/blob/master/examples/hello-mtls/README.mdmTLS handshake diagram

2번은 다음 사이트에 플래그와 /etc/kubernetes/manifests/etcd.yaml 파일에 옵션을 확인하시면 될 것 같습니다. etcd.yaml에는 --cert-file과 --key-file로 전달되는 경로를 확인할 수 있습니다. 이 두 인자는 서버에 사용되는 TLS cert와 key 파일을 전달합니다.

https://etcd.io/docs/v3.2/op-guide/configuration/#security-flags

감사합니다~

wwwjkscom님의 프로필 이미지
wwwjkscom

작성한 질문수

질문하기