ACM 이란?
AWS Certificate Manager는 AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS(Secure Sockets Layer/전송 계층 보안) 인증서를 손쉽게 프로비저닝, 관리 및 배포할 수 있도록 지원하는 서비스입니다.
SSL/TLS 인증서는 네트워크 통신을 보호하고 인터넷상에서 웹 사이트의 자격 증명과 프라이빗 네트워크상에서 리소스의 자격 증명을 설정하는 데 사용됩니다.
많은 고객님들 께서 EC2에서 운영하고 있는 서버에 https를 적용하기 위해 EC2 내부에 인증서를 직접 설치하여 사용하시는 경우가 많습니다.
ACM의 여러 장점으로 ACM 인증서로 교체하고자 하시는 경우, 해당 ACM을 EC2에 설치하실 수 없습니다.
ACM 사설 CA에서 발급한 사설 인증서를 EC2 인스턴스, 컨테이너에 설치하실 수 있으나 공공 ACM 인증서는 Nitro Enclave에 연결된 Amazon EC2 인스턴스에 설치할 수 있지만 다른 Amazon EC2 인스턴스에는 설치할 수 없습니다.
따라서 ACM을 다른 AWS 서비스와 연결하여 사용하셔야 합니다.
? 참고: ACM 인증서는 ELB와 동일한 AWS 리전에서 요청하거나 가져와야 합니다. CloudFront를 배포하려면 미국 동부(버지니아 북부) 리전에서 인증서를 요청해야 합니다.
ACM 배포 방법
EC2에 갱신한 ACM을 배포하기 위해서는 주로 ELB에 ACM을 적용하고, 배포하고자 하는 서버를 대상 그룹으로 지정하여 운영하는 것이 일반적입니다.
도메인 주소가 외부 호스팅 업체여도 Route53으로 호스팅 이전을 하지 않고도 사용 가능합니다.
아래에서 ALB에 ACM을 등록하는 예시를 보여드리겠습니다.
다시 말씀드리지만, ACM에서 발급받은 인증서는 외부로 Export가 되지 않으므로 인증서 파일이 필요한 EC2 내부의 웹서버 등에는 사용하실 수 없습니다. 따라서 ELB나 ACM을 사용하는 서비스를 통해 EC2에 인증서를 배포하셔야 합니다.
이후 올바르게 ACM이 적용되었다면, 확인이 필요합니다.
인증서가 AWS에서 발급한 ACM으로 적용이 잘 되었는가?
사용하시는 도메인, 웹서비스의 주소로 접근하셔서 인증서의 정보를 확인합니다.
아래와 같이 주소 옆의 자물쇠 모양을 클릭하여 인증서를 선택합니다.
인증서 정보에서 발급자가 "Amazon" 인 것을 확인합니다.
만약 인증서 발급 기관이 여전히 사설 CA 라면 해당 도메인에 레코드 값을 수정해주셔야 합니다.
예를 들어, 인증서 정보 -> [자세히] -> [주체] 에서 해당 인증서가 어떤 도메인에 연결되어 있는지를 확인하실 수 있습니다.
즉, EC2의 도메인 주소로 접속했을 때, https는 가능하지만 인증서가 ACM이 아닌 경우로는 보통 해당 도메인이 ELB으로 라우팅 되지 않은 문제일 확률이 높습니다.
따라서, 도메인의 네임 서버에 ALB의 DNS로 아래 구조로 레코드를 통해서 변경해주시면 됩니다.