본문 바로가기

IT

AWS Lightsail (3) HTTPS로 띄우기(Certbot을 통한 무료 SSL 발급)

728x90

이전에 포스팅한 AWS Lightsail (1), AWS Lightsail (2) 에 이어서 HTTP로 띄운 서버를 Certbot을 통하여 HTTPS로 전환하여 보안을 강화하려한다

1. HTTPS 란

HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure 등으로 불리는 HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화를 지원하고 있다.

2. certbot 설치

  • Let's Encrypt라는 비영리 기관을 통해 무료로 TLS인증서를 발급받을 수 있다.
  • certbot 이란 let's encrypt 인증서를 자동으로 발급/갱신해주는 봇(데몬) 이다.
  • sudo apt install certbot

3. python3-certbox-nginx 설치

  • certbot 및 nginx plugin 설치
  • sudo apt install python3-certbox-nginx

4. sudo certbot certonly —nginx

  • sudo certbot certonly —nginx 
  • 특정 도메인에 대한 SSL 발급이 가능하다.

도메인 등록

5. Let's Encrypt로 부터 받은 SSL 암호화 키 파일

  • /etc/letsencrypt/live/eattwogetter.shop/fullchain.pem
  • /etc/letsencrypt/live/eattwogetter.shop/privkey.pem
  • 위와 같은 경로에 접근하면 확인할 수 있다.

6. nginx sites-available 설정 

  • cd /etc/nginx/sites-available 
  • sudo vim sbb
server {
        listen 80;
        server_name 도메인네임;
        rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
        listen 443;
        server_name 도메인네임;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/도메인네임/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/도메인네임/privkey.pem; # managed by Certbot
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 암호화 알고리즘
        ssl_prefer_server_ciphers on;

        location / {
                proxy_pass http://localhost:8080;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
        }
}
  • ssl_ciphers에는 보안 통신 과정에서 사용할 암호화 알고리즘을 지정한다.
  • SSL 이라고 해서 다 똑같은 암호화 알고리즘을 사용하는 것이 아니라, Client와의 협상(Negotiation)과정을 통해 적당한 수준의 암호화 알고리즘을 채택하게 된다.

7.  AWS Lightsail 설정

  • 네트워킹 탭에 IPv4 방화벽 규칙 추가
  • HTTPS는 443번 포트에서 돌아가기 때문에 443포트를 뚫어주는 작업

보안 설정

 

8. 실행 결과

  • https 위에서 내가 설정한 도메인이 잘 돌아가는 것을 확인할 수 있다.

 

실행 결과

 

 

 

 

 

 

참고 https://aws.amazon.com/ko/premiumsupport/knowledge-center/lightsail-install-certbot-package/

 

Lightsail 인스턴스에 Certbot 패키지 설치

Lightsail 인스턴스에 Let's Encrypt 인증서 설치를 위해 Certbot 패키지를 설치하려면 어떻게 해야 합니까? 최종 업데이트 날짜: 2021년 10월 20일 내 Amazon Lightsail 인스턴스에 Let's Encrypt 인증서를 설치하고

aws.amazon.com

https://certbot.eff.org/

 

Certbot

Tagline

certbot.eff.org