프로그래밍/서버, DBMS

[SSL] 아파치에 Let's encrypt 인증서 설치 및 certbot을 이용한 자동 갱신

포도알77 2019. 3. 19. 08:27
 굉장히 멀고 먼 이야기 같았던 SSL을 설치하는게 정말 쉬워졌다.  


 Let's Encrypt에서 제공되는 인증서를 certbot을 이용하면, 몇번 정보 입력으로 설정이 된다. 세상 참 좋아졌다. 



 우분투 LTS 16.04와 아파치를 이용한 경우로, 그 외의 경우에는 홈페이지에 들어가면 상세히 나와있으니, 쓸데없이 검색하지 말자. 



 사실 무료 SSL이라고, 성능이 떨어지는 것은 아니다. 단순히 돈 내고 가입하는 SSL의 경우에는 보험금과 같은 역할이 크고, 더욱이 보험금을 받기도 힘들다는 루머가 있다. 따라서 필요에 따라서는 구매하는 것도 좋은 방법이다.   



 우선 Certbot을 설치하자. 아래의 명령어들을 실행하자
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

 요란하게 설치된다. 우선 여기까지가 certbot을 설치하는 과정이다.  




 이제 certbot을 실행해보자.

sudo certbot --apache
 그러면, certbot이 실행되어서 아파치에서 설정한 도메인들(Site-available)들의 목록이 쭉 나오며, 필요한 사이트를 선택하자. 복수 선택도 된다. 


 이후 SSL 설치가 되면, 기존 http로 들어오는 클라이언트들을 https로 redirect할 것인지 묻는다. 

 필요하다면 Yes, 아니라면  No를 하면 된다. (어차피 리다이렉트 되어도, 서버 프로그램은 Listen하는 포트 하나만 봐도 된다. 

 
 Node.js의 경우 8080으로 세팅하고, 아파치에서 8080으로 리버스 프록시를 써서 넘겨줬다면, 그대로 https 프로토콜 전용 Listen을 할 필요가 없다는 뜻이다.)  


 그러면 인증서가 설치된것이다. 이제 자신의 사이트를 https로 접속해보자. 정상적으로 된다면 설치 끝.  



 이제 갱신이 남았는데, 무료 인증서라서 3개월 후에 만료된다. 만료되고 나면, 안전하지 못하는 메시지를 띄울것이다. 이때 사이트 이용자들이 떨어져 나가겠지... 아무튼 cron을 이용하는 방법이 있다. 


 아래의 명령어를 사용하자.
sudo crontab -e


 명령어를 치고나면, 자신의 PC에 설치된 에디터를 보여줄 것이다. 아무거나 마음에 드는것을 선택하면 된다.


 선택 후에 열린 파일에 아래의 글을 입력하자. 
15 3 * * * /usr/bin/certbot renew --quiet

 위의 명령은 매일 오전 3시 15분에 설치된 인증서들을 모두 갱신하는 것이다. 인증서는 30일 미만으로 남았을때만 갱신된다. 따라서 매일 돌려도 상관없다. (걱정이 많아서..) 그리고 파일을 저장해주자. 



 이제 SSL 설치 및 자동 갱신이 끝났다.


 아파치는 이래서 참 좋다. Node.js는 ..후



페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사