[HTTPS,Nginx,Docker] Let's Encrypt를 사용해, Docker 기반으로 HTTPS 설정하기 1

2023. 6. 5. 20:57프로젝트 로그/테스트x솔루션 JIG 개발기

반응형

Let's Encrypt

웹 사이트에서 HTTPS를 사용하려면 CA(인증 기관)에서 인증서를 가져와야 한다. Let's Encrypt는 CA 역할을 하며, 일반적으로 웹 호스트에서 실행되는 ACME(Automated Certificate Management Environment) 프로토콜을 사용하는 소프트웨어를 사용하여 인증서 발급 작업을 수행한다.

Let's Encrypt는 무료 SSL 발급 인증 기관이며, Docker Image 사용자를 위하 Certbot Docker Image를 제공 한다.

 

무료 SSL 인증서 Let's Encrypt 단점

  • 인증서 유효기간은 90일
    • 3개월에 한번씩 인증서 갱신을 해야 함
    • 자동 갱신 스크립트를 사용해 자동 갱신 가능
  • 멀티 도메인 지원 불가
    • test.com을 받았는데, sub.test.com을 쓰고 싶다면 sub.test.com을 위한 인증서를 또 받아야 함
    • 한번 받아서 계속 사용할 수 있는 *(asterisk).test.com 모메인 처리가 안됨

 

ACME(Automated Certificate Management Environment)

X.509 인증서의 도메인 유효성 검사, 설치 및 관리를 자동화 하기 위한 표준 프로토콜이다.

 

Let's Encrypt를 이용하여 SSL 인증서 발급 방법

  • Webroot : 외부 웹 사이트에서 해당 호스트 서버에 접근하여 검증. 도메인 호스트 서버에 사용자(개발자)가 설정한 Webroot 경로에 접근하여 검증
    • 사이트 디렉토리 내에 인증서 유효성을 확인 할수 있는 파일을 업로드 하여 인증서를 발급하는 방법으로, 서버 내에 .well-knwo이 있는 곳을 지정
  • DNS : 도메인의 DNS 서버에 TXT 필드에 Certbot에서 발급한 임의의 값을 넣어두고, TXT 필드의 값을 검사하여 검증
  • Standalone : 사이트 작동을 멈추고 이 사이트의 네트워킹을 이용해 사이트 유효성을 확인해 Let's Encrypt SSL 인증서를 발급하는 방식
  • 웹서버 : Nginx나 아파치와 같은 웹서버에서 직접 SSL 인증을 실시하고 웹 서버에 맞는 SSL 세팅 값을 부여

 

참고자료

 

 

반응형