네모네모새

Docker와 인증서(1/2) 본문

Docker

Docker와 인증서(1/2)

네모새 2022. 4. 5. 14:02

인증서

대부분의 사이트들을 이용할때 우리들은 무의식적으로 Https 프로토콜을 사용하고 있습니다.
이 Https 프로토콜은 Http에 SSL이라는 보안 계층이 추가된 것입니다.

위 사진처럼 웹 브라우저의 주소표시줄에 있는 자물쇠 버튼을 선택하면,
보안 연결(HTTPS)가 사용되었다는 문구와 함께 인증서를 확인할 수 있습니다.

Server와 CA

인증서를 보면 발급 대상과 발급자가 있습니다.

발급 대상은 이 SSL 인증서를 사용할 서버입니다.
발급자는 CA라고 부르며 Certificate Authority 즉 인증기관의 약자입니다.

서버는 자신이 사용할 인증서가 신뢰할 수 있는 인증서라는 것을 증명하기 위해 CA라는 인증기관에 비용을 지불하고 자신을 보증할 인증서를 구매 합니다.

그리고 이렇게 CA에게 구매한 인증서를 서버의 특정 경로에 저장하여 외부에서 접근시 자신이 신뢰할 수 있는 서버라는 것을 증명합니다.

Root CA

서버가 신뢰할 수 있는 기관인 CA를 통해 인증을 요청하는 것은 이해가 되었습니다.

위의 사진에서는 velog.io의 인증서를 CA인 Amazon이 발급해 주었습니다.
그렇다면 이 CA가 신뢰할 수 있는 인증 기관이라는 것은 어떻게 증명할 수 있을까요?

이걸 이해하기 위해서는 Root CA라는 개념을 이해해야 합니다.

일반적으로 인증서의 구조는 Root, Intermediate(중간 인증서), Leaf(서버 인증서) 3단계로 구성되어 있으며 이를 인증서 체인(Certificate chain)이라고 부릅니다.

실제 사용자가 비용을 지불하고 구입하는 인증서는 서버 인증서인 Leaf이지만, Leaf 인증서 하나만으로 인증을 하는 형태가 아닌 인증서 체인 상단에 존재하는 인증서들을 참고해 인증하는 방식입니다.

이 서버 인증서를 신뢰하기 위해서는 해당 인증서의 인증서 체인을 통해 신뢰할 수 있는 Root 인증서를 찾아낼 수 있어야 합니다.

그렇다면 Root CA는 무엇일까요?

서버의 인증서는 CA가 인증해주지만, CA의 인증서 역시 누군가 보장해주어야 합니다.
CA는 자기 스스로가 자신의 인증서에 서명을 하는데 이를 Root CA라고 하며, 인증서 중 가장 큰 권한을 가지고 있습니다.

먼저 tistory의 인증서입니다. 인증 경로 탭을 통해 tistory의 인증서 체인 정보를 볼 수 있고,
위의 중간 인증서와 Root 인증서를 확인할 수 있습니다.

다음은 Velog의 인증서입니다.
역시 인증서의 체인을 확인할 수 있는데 Amazon이라는 중간 인증서와 Amazon의 Root CA를 확인할 수 있고, 그보다 상위 기관의 인증서 역시 확인할 수 있습니다.

인증서 실습

이해를 돕기 위해 직접 실습을 진행해 보겠습니다.
실습의 절차는 다음과 같습니다.

  1. AWS EC2를 이용해 VM 생성
  2. 해당 서버를 Root CA로 만들기 위해 Root 인증서 생성
  3. 웹 서비스가 사용할 SSL 인증서를 생성
  4. 해당 인증서를 Root 인증서를 통해 서명

'Docker' 카테고리의 다른 글

Docker 데이터 관리(Docker Volume vs bind mount)  (0) 2022.03.18
Comments