들어가며
AWS 환경에서 HTTPS를 적용하려면 SSL/TLS 인증서가 필요합니다. AWS에서는 ACM(AWS Certificate Manager) 을 통해 인증서를 손쉽게 등록하고 관리할 수 있습니다. 특히 CloudFront, API Gateway, Global Accelerator와 같은 글로벌 서비스에 사용할 경우, 인증서 생성 위치가 us-east-1(버지니아 북부) 이어야 한다는 점도 중요합니다.
이번 글에서는 ACM에 인증서를 수동으로 등록하는 방법과, 인증서 구성 요소인 Private Key, Certificate(Public Key), Certificate Chain에 대해 쉽게 설명해드리겠습니다.
인증서 구성 요소
인증서 파일은 크게 3가지로 구성됩니다:
1. Private Key (비밀 키)
- 파일 예:
newkey.pem
- 서버에서만 보관되어야 하며 절대 노출되면 안 됩니다.
- 인증서 발급 요청(CSR)을 생성할 때 사용되며, 실제 암호화/복호화 연산에서 핵심 역할을 합니다.
🛡️ 보안 주의: 비밀 키는 로컬 또는 안전한 저장소(HSM 등)에 보관하세요. ACM에는 등록 시점에만 사용되며 저장되지 않습니다.
2. Certificate (Public Key)
- 파일 예:
cert.pem
- CA(인증기관)가 서명한 SSL 인증서입니다.
- 사용자 브라우저는 이 공개 키를 통해 서버의 진위 여부를 검증합니다.
3. Certificate Chain (중간 인증서 체인)
- 파일 예:
DigiCertCA.pem
등 - 루트 인증서까지의 신뢰 체계를 연결하는 역할을 합니다.
- 중간 CA → 상위 CA → 루트 CA 순으로 연결된 체인을 포함해야 합니다.
📌 순서가 올바르지 않으면 브라우저에서 “인증서 유효하지 않음” 오류가 발생할 수 있습니다.
ACM 수동 등록 방법
AWS CLI 또는 콘솔을 통해 인증서를 등록할 수 있습니다. 아래는 콘솔 기준입니다.
ACM 콘솔을 통한 등록
- ACM 콘솔 접속 → https://console.aws.amazon.com/acm/
- [인증서 가져오기] 클릭
- 다음 항목들을 입력합니다:
- 인증서 본문 (Certificate body):
cert.pem
내용 전체 - 인증서 체인 (Certificate chain):
DigiCertCA.pem
내용 전체 - 비공개 키 (Private key):
newkey.pem
내용 전체
- 인증서 본문 (Certificate body):
CloudFront에서 사용할 경우의 주의사항
CloudFront와 같은 글로벌 서비스는 ACM 인증서를 반드시 us-east-1 (버지니아 북부) 리전에 생성하거나 등록해야 합니다. 다른 리전에 등록된 인증서는 선택할 수 없습니다.
💡 CloudFront 설정 중 인증서 선택이 안 된다면 리전을 꼭 확인하세요!
Tip: 인증서 변환 및 확인 명령어
OpenSSL로 인증서 내용을 확인하거나 변환할 수 있습니다.
# 비밀 키 확인
openssl rsa -in newkey.pem -check
# 인증서 확인
openssl x509 -in cert.pem -text -noout
# 체인 연결 확인
cat cert.pem DigiCertCA.pem > fullchain.pem
마무리
ACM 인증서는 보안 통신의 핵심입니다. 인증서 구성 요소를 정확히 이해하고, CloudFront 등의 글로벌 서비스에서는 us-east-1 리전을 사용하는 것이 중요합니다. 앞으로 HTTPS를 적용하거나 자체 인증서를 등록할 때 본 글이 도움이 되길 바랍니다.