오늘은 지난글에 이어서 간단하게 GCP 에 HTTPS 관련 적용한 글을 포스팅 하려고 한다.
들어가기에 앞서
[ SSL 인증서 최저가 구매 ]를 찾게 되면 많은 수의 사이트들이 나오는데.. 사실 어디가 괜찮은지 어떤 인증서를 써야하는지 모르는 나였기 때문에, Single Domain만 붙일 수 있는 것들을 찾게 되었다.
그 중 나는 가격이 제일 저렴한 코리아 SSL을 이용하게 되었다. ( 광고는 아니고... )
-> 코리아 ssl GoGet Domain SSL 도메인 구입
도메인을 구입하게 되면 인증방식들이 나오게 된다.
이메일은 해당 도메인과 관련된 회사의 이메일 주소 도메인 등록정보에서 확인되는 이메일 추가로 5개의 임의로 지정된 메일주소로 인증메일을 발송하게 되고 그것을 인증해야 한다.
추가로 지정된 이메일 주소는 admin, administrator, hostmaster, postmaster, webmaster 와 같이
총 6개 메일 주소 중에서 적어도 1개는 유효한 메일주소여야 이메일 인증을 문제없이 완료
개인 프로젝트의 사이트이기 때문에 나는 DNS 인증을 하게 되었다.
DNS에 구입한 도메인을 입력하고 여러 정보를 입력하게 되면 5분 이내에 인증화면으로 넘어가게 된다.
해당 그림에서와 같이 파란색 부분을 CNAME , 빨간색 부분을 DNS Recode로 등록해야 한다.
구글의 Cloud DNS에 레코드 추가 > CNAME 과 Record 값으로 위 값을 입력
도메인을 인증하게 되면 도메인을 다운로드 받을 수 있는 화면이 나오게 된다.
이중에서 PEM 형식 인증서와, PRIVATE KEY를 다운 받았다.
Kubernetes Engine > 서비스 및 수신에서 서비스 선택 후 [ + 인그레스 만들기 ] 선택
앞서 다운 받은 인증서를 가지고 해당 서비스의 인그레스를 추가
두개를 업로드 한 인증서의 프론트엔드 선택하여 HTTPS 선택하고 인증서 등록하여 생성 -> 아 외부 부하분산기 선택!
생성하고 나면 Cloud DNS > 부하 분산에
HTTPS 부하 분산기 생김
해당 부하 분산기에 들어가서
이렇게 뜨게 되면 해당 IP의 443 에 SSL 인증이 맺어진 것이다.
여기서 제공된 ip 주소를 가지고 기존 DNS에 적어두었던 값들을 변경해주어야 한다.
Cloud DNS -> 도메인 > A 로 생성했었던 레코드들 수정 > 변경된 IP 주소로 할당
해당 url을 통해 ssl이 정상적으로 달리게 되었는지 확인!
PS. 기존에 DNS -> LB -> Service 방식이어서 LB 쪽에 SSL 처리를 해준 것인데, 더 간단한 구조로 변경하고 싶은데.. 일단 운영환경부터 돌려달라는 말씀에.. 일단 이 구조로 되었다.
로드 밸런서까지는 필요하지 않고.. 그냥 Deployment 와 Pod 로 하나만 운영하고 싶은 마음..?
이 부분도 학습해서 곧 글을 써보아야겠다.
일단 다음 글을 쓰게 된다면 Git Action과 같이 수정하고 이미지 말고 배포하고 pod 올렸다 내리는 부분을 적지 않을까 싶음...