[AWS] ACM 인증서 - Deep Dive (인증서 구조, Amazon Root CA, ACM 다운로드)
인증서 계층적 구조(Chain of Trust)
SSL/TLS 인증서는 계층 구조로 구성되어 있다.
일반적으로 3계층 구조로 되어 있으며, Leaf Certificate (Verify) -> Intermediate CA (Verify) -> Root CA 구조로 계층적인 검증 과정을 걸치게 된다. 이렇게 계층적인 검증 과정을 “Chain of Trust” 라고 한다.
Root CA
가장 최상위에 위치한 인증서는 일반적으로 Root 인증서(Root CA)라고 불린다. 이러한 Root CA는 전세계적으로 신뢰하기로 약속한 국제 공인기관이다. 또한, 상위 기관이 존재하지 않기에 스스로 보증(Self-signed)한다.
일반적으로 이러한 Root CA는 웹 브라우저 및 어플리케이션 등에 미리 내장되어 있으며, 해당 인증서에 대응하는 공개 키 또한 인증서 내부에 포함되어 있다.
Intermediate CA
Root CA는 인증서 신뢰 관계의 원점(Trust anchor)이기에, Root CA가 훼손될 경우 신뢰 구조 전체가 무너지게 된다. 따라서 Root CA는 네트워크 환경과 격리된 환경에서 안전하게 관리되어야 한다. 인증을 수행하는 기관의 인증서가 손상되거나 비밀키가 유출되는 경우 이를 철회할 수 있도록 ICA라는 중간 단계를 두어 보안 체계를 강화하였다.
Intermediate CA(ICA)는 Root CA의 역할을 대행하는 ‘중간 수행자’이다. Root CA와 신뢰할 수 있도록 설정되어 있으며 인터넷 환경에 노출되는 인증기관이다.
이와 같이 Root CA는 ICA를 발급(서명)하는 경우에만 제한적으로 사용되고, Root CA를 이용하여 ICA에서만 시스템 상에 온라인으로 두고 Leaf 인증서 발급(서명)에 사용하는 구조의 형태를 지닌다.
Leaf Certificarte(Server certificate)
우리가 일반적으로 알고 있는 도메인 SSL 인증서이다. AWS에서는 ACM 서비스가 Leaf Certificate에 해당된다.
아래 예시를 통해 지금까지의 정보에 대하여 이해를 더해보자.
(1) 클라이언트(브라우저, 어플리케이션)에서는 이미 신뢰하고 있는 Root CA에 대한 정보를 ‘신뢰하고 있는 Root CA 목록’으로 설정한 상태이다.
(2) 전달받은 Leaf 인증서를 서명한 ICA 정보, 그리고 ICA를 서명한 Root CA에 대한 정보를 차례대로 확인하여 검증 과정을 걸치게 된다.
Amazon Root CA
AWS에서 직접적으로 인증서를 발급받아 도메인에 적용할 수 있다. AWS는 최상위 인증기관에 인증된 기관이며, 대부분의 브라우저나 어플리케이션 서버 내 trust store에 아마존 기관이 등록되어 있다.
다음은 Amazon CA에 등록되어 있는 OS/Browser 목록이다.
[Operating System]
- Amazon Linux (all versions)
- Microsoft Windows versions, with updates installed, from January 2005, Windows Vista, Windows 7, Windows Server 2008, and newer versions
- Mac OS X 10.4 with Java for Mac OS X 10.4 Release 5, Mac OS X 10.5, and newer versions
- Red Hat Enterprise Linux 5 (March 2007 release), Linux 6, and Linux 7 and CentOS 5, CentOS 6, and CentOS 7
- Ubuntu 8.10
- Debian 5.0
- Java 1.4.2_12, Java 5 update 2, and all newer versions, including Java 6, Java 7, and Java 8
[Browsers]
현대 브라우저에서는 Amazon Trust Services CA를 신뢰한다. certificate bundle를 업데이트를 진행하는데 있어 browser 마다 업데이트 방법은 상이하다.
- Chrome
- Firefox
- Safari
- Internet Explorer and Microsoft Edge
만약, 나의 브라우저 혹은 어플리케이션 내 아마존 Root CA 등록여부를 확인 하고자 한다면, 아래 테이블의 모든 Test URL이 정상적으로 접속이 되는지 확인하면 된다. (Valid URL을 통해 접속 정상여부를 판단하자.)
참조: https://www.amazontrust.com/repository/
<Test URL 성공화면>
ACM 인증서 키 다운로드
일반 사설기관에서 SSL을 발급받는 경우, 개인키(Private Key)를 클라이언트 측에서 보유하지만, Amazon Certificate Manager 서비스 경우 개인키(Private Key)는 다운받을 수 없으며, 공개키에 대해서는 CLI 명령으로 다운로드가 가능하다.
아래 링크에서 ACM 관련 명령어 및 예시 출력 내용까지 확인할 수 있다.
# get-certificate
https://docs.aws.amazon.com/cli/latest/reference/acm/get-certificate.html
get-certificate 명령어를 통해 ACM 공개키 정보들이 출력되며 Leaf Certificate, ICA 인증서 공개키 값에 대한 정보를 얻을 수 있다.
참조
https://engineering.linecorp.com/ko/blog/best-practices-to-secure-your-ssl-tls/
https://m.blog.naver.com/alice_k106/221468341565
https://www.venafi.com/blog/what-difference-between-root-certificates-and-intermediate-certificates
[Chain of Trust]
https://en.wikipedia.org/wiki/Chain_of_trust
[Amazon Trust Services]
https://www.techtarget.com/searchaws/definition/Amazon-Trust-Services
'AWS > AWS 알아두면 좋은 지식' 카테고리의 다른 글
[ECS] ECS Capacity Provider - Deep Dive (0) | 2023.11.18 |
---|---|
[AWS] CloudWatch agent를 통한 Group 레벨 메모리 메트릭 관찰하기 (0) | 2023.11.10 |
[EKS] ALB Ingress Controller 필요성 (0) | 2022.09.05 |
[ECS Fargate] Health Check grace period (0) | 2022.08.29 |
[AWS EC2] 백업중인 EC2에서 네트워크 부하 발생 여부 (0) | 2022.07.14 |
댓글