SSL 인증서 적용 방법

0. 환경
- 인증서는 Sectigo(구 COMODO)에서 발급
- AWS EC2 사용
- ELB는 쓰는 서버와 안쓰는 서버가 있다.
- 웹서버는 Nginx

1. 도메인 소유자 인증 - HTML 인증
  https://www.comodossl.co.kr/products/comodo-ssl-dcv.aspx 이 페이지에서 시키는 대로 하면 1 ~2시간 후에 인증서 메일이 온다.

/.well-known이 설정되어 있지 않다면 nginx 설정에 아래 코드를 추가한다.
설정은 ubuntu 기준 /etc/nginx/sites-available/[FILENAME]에 있다.

server {
...
  location /.well-known {
    alias [경로]
  }
...
}


2. 인증서 설치 - ELB 사용 안하는 서버
1) 한 서버에 한 도메인
  https://www.comodossl.co.kr/certificate/ssl-installation-guides/Nginx.aspx 이 페이지에서 시키는 대로 하면 된다.
인증서 내용을 합친 후에 nginx 설정에 지정한 파일 외에는 삭제해도 되는 것 같다.

2) 한 서버에 여러 도메인(미완)
  정확한 원인은 모르겠지만 체인인증서를 적용하면(인증서를 합치면) nginx를 재시작할 때 오류가 발생한다.
일단 인증서를 합치지 않고 서버 인증서(사이트이름.crt)와 인증서 개인키(사이트이름_SHA256WITHRSA.key)만 nginx에서 설정한 경로에 업로드하면 된다.
이런 식으로 인증서를 적용하면 "안전하지 않음"으로 나온다.
=> 인증서 문제가 아니라 nginx 설정의 ssl_protocols가 구버전TLS를 지원해서 그런 것 같다.
TLS1.2 이상만 지원하도록 변경하면 정상적으로 나온다.


3. 인증서 설치 - ELB 사용
1) 한 서버에 한 도메인
  https://www.comodossl.co.kr/support/faq/view.aspx?category=SSL&Seq=2100 이 페이지와 https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/listener-update-certificates.html에서 시키는 대로 하면 된다.
인증서 본문(Certificate body)에는 사이트이름.crt,
인증서 프라이빗 키(Certificate private key)에는 사이트이름_SHA256WITHRSA.key,
체인 인증서에는 SectigoRSADomainValidationSecureServerCA.crt, SectigoRSAAddTrustCA, AAACertificateServices.crt의 내용을 차례대로 붙여 넣으면 된다.
적용되는 데에 3분쯤 걸리니까 기다리자.




이 블로그의 인기 게시물

Postgresql에서 5432 port가 열려있냐는 문제(Ubuntu 기준)

vue에서 v-html에 포함된 class의 css가 적용되지 않는 경우

Linux screen 명령어 정리