Nginx 설치
sudo apt update
sudo apt install build-essential libssl-dev nginx
certbot 설치
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
인증서 발급받기
sudo certbot --nginx
위와 같이 하면 nginx 설정을 자동으로 한다.
만약 수동으로 nginx 설정을 변경하고자 한다면 다음과 같이 한다.
sudo certbot certonly --nginx
인증서 자동갱신
Let's Encrypt 인증서는 90일 단위로 만료되기 때문에 자동갱신이 필요하다.
crontab으로 매달 1일 자동갱신하고 싶다면 sudo crontab -e로 crontab 에디터를 열고, 다음 코드를 마지막 줄에 추가하면 된다.
0 0 1 * * certbot renew --quiet --renew-hook "sudo systemctl reload nginx"
restart 대신 reload를 사용하면 웹서비스 중단 없이 설정값만 변경되고, 만약 변경되는 설정값에 에러가 있다면 종전 설정이 유지된다고 한다.
※Webmin 설정 팁
nginx의 리버스 프록시로 Webmin을 사용할 경우 certbot이 자동으로 생성한 설정만으로는 서비스가 정상 작동하지 않을 수 있다.
로그인에 성공해도 프록시 버퍼 크기를 충분히 잡지 않으면 타임아웃되도록 툴들을 사용할 수 없다.
따라서 서버블록 내에 다음과 같이 설정을 추가하는게 좋다.
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_redirect off;
위와 같이 하면 Terminal을 제외한 다른 툴들은 정상 작동한다.
Terminal의 경우 WebSockets 지원 설정을 해주어야 하므로 다음 코드를 추가하면 된다.
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
다음은 적용 예시이다.
'개발일지와 메모사이' 카테고리의 다른 글
Powershell 7을 CLI로 업데이트 하는 방법 (0) | 2024.06.22 |
---|---|
Conda 환경에서 uwsgi 설치하기 (1) | 2024.06.06 |
우분투에서 블루투스 키보드 등록 문제 해결하기 (0) | 2023.10.09 |
우분투 Locale 터미널에서 설정(한글) (1) | 2023.10.05 |
ZSH(Z Shell) 사용하기 (0) | 2023.09.26 |