[1] 배경
보유하고 있는 SSL 전자인증서를 AWS ACM 에 업로드하는 가이드가 필요해서 만들었습니다.
[2] 작업 내용
2-1. Certificate Private Key 복호화
AWS계정에 기 발행된 SSL 인증서를 Import 하기 위해서 압축파일 내 Private Key(key.pem)의 암호가 필요합니다.
한국전자인증과 같은 SSL 인증서 같은 기관에서 발행된 인증서는 최초/갱신시 안내받은 암호값을 입력해줘야 writing RSA key 메시지 반환과 함께 AWS ACM에 Import 가능한 Certificate private key가 만들어집니다.
먼저 openssl 명령어를 활용하여 암호화된 Certificate Private Key를 복호화하여 추출을 진행합니다.
# 암호화된 Key.pem 파일이 있는 디렉토리 경로(PATH)로 이동하여 아래와 같이 복호화 작업을 진행합니다.
cd /key path/
openssl rsa -in oldkey.pem -out newkey.pem

복호화된 newkey.pem 파일의 암호키를 기반으로 ACM으로 업로드 가능합니다.
2-2. ACM에 SSL Import

- 복호화된 인증서 암호키는 “Certificate private key” 란에 입력합니다.
- 나머지 기타 pem 값은 Certificate body(cert)과 Certificate chain (DigiCertCA)을 입력합니다.
- Next 클릭


- 위와 같이 정상적으로 Import 완료됨
2-3. ALB, CloudFront 등에 연결
서버를 인증서에 연결 및 특정 TCP 포트로 통신하기 위해서 신규 ALB 생성이 필요합니다.
Import된 SSL인증서를 ALB의 HTTPS 리스너로 연결 후 특정 포트로 서비스되는 EC2(Application)를 연결하여 사용하면 됩니다.
아래의 절차로 진행하면 됩니다.
인증서 연결 작업 절차
1) aws 계정에 ALB를 신규로 생성
2) ACM에 Import된 SSL인증서를 ALB의 HTTPS 리스너로 연결
3) 생성한 ALB의 리스너규칙에서 특정 TCP 포트를 포워딩하는 대상그룹으로 새로 생성
4) 생성된 대상그룹에 EC2(Application)을 타겟으로 등록
5) Route53의 도메인 호스팅 영역에 신규 레코드를 생성하여 ALB의 DNSName을 CNAME 레코드값으로 등록
6) 최종 연결 상태 확인
[3] 결론
위와 같이 인증서를 받아서 업데이트할 수도 있습니다.
하지만 Application의 인증서를 Amazon 인증서로 신규 생성하여 운영할 수도 있습니다.(비용 무료)
향후 DNS의 CNAME 레코드값 등록 및 인증만으로도 자동 갱신이 가능하기 때문에 많이 사용되는 편입니다.
[4] 참고자료
https://docs.aws.amazon.com/ko_kr/acm/latest/userguide/acm-overview.html
https://docs.aws.amazon.com/ko_kr/acm/latest/userguide/acm-certificate.html