[보안] 타사 인증서 AWS ALB SSL 적용
현황
- HTTPS로의 전환이 필요하여 SSL 인증서 발급받았다.
- 계약팀의 사정(?)으로 AWS ACM에서 직접 발급받지 않고 타사인 가비아에서 인증서를 발급받아, AWS에 등록하고 이 인증서를 적용해야함
- 현재 WAS, WEB 등 모든 서버가 ALB를 통해 서로 통신하는 상태
- Route53에 도메인 등록은 마친상태
방법 개요
- 가비아(타사 인증서) 발급 (pem파일 형태)
- ACM 인증서 등록
- ALB 리스너 추가 및 편집
- application properties 수정
ACM 인증서 등록
인증서 및 키 변환
- 사전완료사항) 가비아 홈페이지에서 pem파일 다운로드 완료
- 키 변환 시 ACM 허용 암호화 알고리즘 확인
- 인증서 프라이빗 키
openssl rsa -in domain_com.key -out domain_com.pem
- 인증서 본문
openssl x509 -in domain_com_cert.crt -out domain_com_cert.pem
- 인증서 체인
openssl x509 -in domain_com_chain_cert.crt -out domain_com_chain_cert.pem
openssl x509 -in domain_com_root_cert.crt -out domain_com_root_cert.pem
- 인증서 프라이빗 키
ACM 인증서 및 키 등록
- cat xxx.pem 후 copy
- AWS 콘솔 - AWS Certificate Manager(ACM) 진입 - 인증서 가져오기 클릭
- 인증서 세부 정보에 각 내용 붙여넣기
- 중요) 체인 순서 : 체인 -> root (root가 가장 마지막)
ALB 리스너 추가 및 편집
HTTP:80
-
HTTPS로 리디렉션될 수 있도록 리스너 편집
HTTPS:443
- 기존 HTTP:80 리스너 역할
- 리스너 세부 정보 : 443 포트 리스너 추가, web 서버 대상그룹으로 라우팅
-
보안 리스너 설정 : 인증서 소스 ‘ACM’ 선택 - 등록한 도메인 인증서 선택
나머지 포트 리스너 편집
-
HTTPS 변경, 서버 인증서 선택
properties 수정
- 웹애플리케이션의 properties 엔드포인트 수정 (ALB HTTP 엔드포인트 -> HTTPS 도메인)
인증서 만료 알람
- 2024-04-25 추가
- ACM에서 직접 발급한 인증서가 아니므로 자동갱신이 안된다. 만료 30일전 알람 만들어준다. 간단함
- 순서 : SNS 토픽 생성 -> CloudWatch 알람 생성
SNS 주제/구독 생성
- AWS 콘솔 - Simple Notification Service 서비스 진입
-
주제 생성
-
구독 생성 : 생성한 주제 ARN 선택 -> 구독을 생성한다. 이메일로 Notification 가도록 준비가 끝났다.
CloudWatch 알람 생성
- CloudWatch - 경보 - 경보 생성 클릭
-
지표/조건 지정 : 지표) ACM 인증서 선택(Certificate Manager) / 조건) 30일보다 낮으면 경보 발생하게 함
-
작업 구성 : SNS 구독 연결.경보 발생 시 SNS 구독 메일이 가도록 연결
SNS 구독 승인
-
요런 메일로 오면 Confirm subscription 클릭하여 구독 완료한다.