certbot으로 인증서 적용하기

ㅅㅌㄹ·2023년 7월 29일

프로젝트 진행 중 HTTPS 프로토콜이 필요해졌다. 사용자의 현재 위치를 가져오기 위해서는 HTTPS 적용이 필수이기 때문이다.
HTTPS는 웹사이트에 SSL 또는 TLS 인증서가 설치되어 있어야 사용 가능한데, 대부분이 유료 인증인지라 학습 목적의 프로젝트에 적용하기는 좀 아까운게 사실이었다. 그래서 무료로 인증서를 발급해주는 Let's Encrypt를 이용하기로 했다.

Ubuntu : 20.04.6 LTS
Nginx : nginx/1.18.0

방법은 다양하게 시도해봤으나 어렵고 계속 실패해서 가장 간단한 방법으로 적용해보고자 Certbot을 활용하였다.

1. Certbot 설치

sudo apt install certbot python3-certbot-nginx

2. Nginx 설정 확인

  1. sudo nano /etc/nginx/sites-available/example.com
    또는 디폴트일 경우 sudo nano /etc/nginx/sites-available/default
  2. ...
    server_name example.com www.example.com;
    : 사용할 배포사이트 도메인 입력
    ...
  3. sudo systemctl reload nginx
    : nginx 재시작

3. 우분투 방화벽 확인

  1. sudo ufw status
    : 방화벽을 사용중이라면 Nginx HTTPS 접속도 허가해준다.
  2. sudo ufw allow 'Nginx Full'
    : Nginx 접속 모두 허가
    sudo ufw delete allow 'Nginx HTTP'
    : Nginx HTTP 설정은 제거

4. SSL 인증서 획득

sudo certbot --nginx -d example.com -d www.example.com
: 인증서를 적용할 사이트 도메인 입력
-> 이메일 입력, 약관 확인(Y), 메일 발송 동의(N), http로 접속시 리다이렉트(2) 입력하면 인증서 발급이 완료된다.

빠르고 쉽게 HTTPS를 적용했다. 다만 Let's Encrypt 인증서는 무료인만큼 유효기간이 3개월로 짧기 때문에 실제 서비스에서는 잘 쓰이지 않으며 만약 쓰려면 자동 갱신 설정을 해야한다고 한다. 이 방법은 원출처에 나와있다.

참고

https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04
https://velog.io/@pinot/Ubuntu-Nginx-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-CertBot%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-https-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

profile
언제나 첫걸음

0개의 댓글