1. Certbot 설치
// add repo
$ sudo add-apt-repository ppa:certbot/certbot
// install certbot
$ sudo apt install python-certbot-nginx
2. HTTPS(SSL)을 설정할, nginx 설정 체크
// check server_name
$ sudo vi /etc/nginx/sites-available/example.com
// server_name example.com www.example.com;
3. nginx relaod
Certbot이 nginx 서버 블록을 확인하게 하기 위해, nginx reload
// reload nginx
$ sudo system reload nginx
4. 우분투 방화벽 (ufw)에서 https 허용
방확벽을 사용하지 않는다면, 따로 설정할 필요는 없지만,
기존에 방화벽을 사용하고 있다면, 아래 링크의 3단계를 참고해서 방화벽 설정을 진행한다.
5. HTTPS (SSL) 인증서 설치
$ sudo certbot --nginx -d example.com -d www.example.com
위의 명령어를 실행하면, 몇가지 과정을 진행 후, 아래와 같은 화면이 나온다.
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
// 1번은 http, https를 따로따로 접속할 수 있게 한다.
// 2번 설정은 http접속을 강제로 https로 모두 변경하므로 https접속만 할 수 있게 된다.
나는 2번을 선택했다.
원하는 번호를 선택하고, 엔터를 누르면 Nginx가 자동으로 재시작되고, 인증서가 저장된 위치를 알려주고, certbot은 종료된다.
6. Let's Encrypt HTTPS(SSL) 갱신
$ sudo certbot renew --dry-run
아주 간단하게, 위 명령어만 입력하면 certbot으로 진행한, HTTPS (SSL)을 모두 갱신할 수 있다.
Ubuntu Cron을 이용해서, 위의 갱신 명령어를 스케쥴링으로 하는 방법은 다음 포스팅에서...
'컴퓨터 > Server' 카테고리의 다른 글
[Error][Nginx] 없는 https로 접근한 경우, 다른 주소로 접속되는 현상. (0) | 2020.08.31 |
---|---|
Nginx log 일자별로 관리하기 - logrotate (0) | 2020.08.30 |
[Ubuntu] chmod 폴더만 또는 파일만 권한 변경하기 (0) | 2020.08.11 |
Nginx에 ModSecurity 웹방화벽 설치 (0) | 2020.06.17 |
OS X 10.15(Catalina) + nginx + php + mariadb 설치 (0) | 2020.04.23 |