Categories
아무코드저장

Let’s encrypt 갱신하기

https로 사이트를 운영하기 시작하면서 (이 사이트는 여전히 라즈베리파이4로 운영되고 있고, 한 번도 다운되거나 한 적이 없다.) 무료로 SSL 인증서를 사용하다보니 가끔씩 갱신 주기를 놓쳐서 새로 발급 받아야 하는 경우가 생긴다. 물론 자동화 스크립트를 걸어두고 주기적으로 알아서 동작하도록 하면 되는데, 나의 미천한 리눅스 관리 실력으로는 아직 제대로 되지 않아서 문제가 생기면 그제서야 다시 스크립트를 실행해둔다. (나는 서버 관리자가 안되길 잘한 것 같다. 물론 지금은 도커가 세상은 몰라도 서버 관리자는 구해준 것 같다만)

여하간 Let’s encrypt로 새로 SSL 인증서를 발급 받거나 내용을 갱신해야 할 경우에 아래와 같은 순서로 처리하면 된다. 그냥 내가 잊어버리더라도 여기서나마 찾기 쉽게 하려고 보관해둔다.

sudo service nginx stop

먼저 Nginx 서버를 내려야 한다. Let’s encrypt가 80포트를 통해서 인증서를 갱신한다고 하는데 뭐 나 처럼 서버 사용이 극히 적은 사용자라면 언제든지 내려도 괜찮겠다.

그 후 핵심이 되는 부분은 아래와 같다.

sudo letsencrypt certonly --standalone -d sirini.blog

위에서 sirini.blog에 자신의 도메인을 입력하면 된다. 즉 이 서버로 연결되는 도메인 중에 https 적용을 하고자 하는 도메인이다. 자세한 내용은 이전에 소개한 아래 사이트를 방문하여 자세한 내용을 확인하는 것이 도움이 된다. https://ryan-han.com/post/server/raspberry_server_1/

참고로 기존 인증서를 갱신하기 위해서는 아래 명령어로도 충분하다. 위에 소개한 것은 새로 발급 받을 때 쓰는 것이다.

certbot renew

SSL 인증서를 발급 받았으면 아래 명령어로 확인할 수 있다.

certbot certificates

저장 경로도 알려주는데, 인증서가 어디에 저장되었는지를 알아야 Nginx 서버 설정에 인증서 경로를 포함해서 웹서버가 인증서를 이용할 수 있다. 자세한 건 위의 링크에 있고, 현재 내 라즈베리파이에 nginx.conf 설정은 아래와 같다. (http { 이 안에 내용})

ssl_certificate /etc/letsencrypt/live/sirini.blog/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sirini.blog/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

SSL이 갱신 되었다면 이제 다시 Nginx 서버를 올려준다. Nginx는 /etc/nginx/nginx.conf에 http 블럭에서 SSL 인증서 경로 및 설정을 참조하여 http 및 https 연결을 듣기 시작할 것이다.

개발 업무를 할 때만 해도 이렇게까지 게으르지는 않았는데, 이제는 정말 개발에서 손을 떼고 있다보니 이지경까지 오게된 것 같다. WWDC 2020도 얼마 남지 않았는데 나도 이제 정신 좀 차려야 하지 않나 싶다…!!!

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다