Lets Encrypt 인증서 발급 및 자동화 @라즈베리파이
글에 앞서, 사용 환경은 다음과 같습니다.
- Raspberry Pi 2 Model B Revision 1.1: 900Mhz ARMv7 Quad Core CPU / 1GB RAM / 100Mbps LAN Port @ 500Mbps GiGA Lite SKB Internet / Ubuntu MATE 16.04 LTS
- SSH & VNC Connect(PC) ThinkPad T420s / Intel Core i7-2620M Dual Core CPU / 8GM DDR3 RAM / WiFi 802.11n @ 500Mbps GiGA Lite SKB Internet / Windows 10 Pro 1709 RTM / PuTTY & VNCViewer
- (동일함)/Mobile Nexus 5X / Qualcomm Snapdragon 808 / 2GB RAM / Android 8.0 Oreo / WiFi 802.11ac @ 500Mbps GiGA Lite SKB Internet / JuiceSSH & VNCViewer
이번 글에는 다음과 같은 참고 글을 사용했습니다. 일부 라이센스가 확인되지 않은 글은 글 내부 인용이 아닌 링크로만 남겨두었습니다. 이 외에도 저작권 관련 문의를 하실 분은 댓글 및 트위터 멘션으로 부탁드립니다.
- Certbot 공식 웹사이트(LetsEncrypt 패키지 설치): https://certbot.eff.org/
- 꿈꾸는 섬 블로그(DH Param 설정하기): https://happist.com/548924/
- ServerFault(CertBot Cronjob으로 자동 갱신): https://serverfault.com/questions/790772
- Programming 블로그(Cron Job 사용법): http://program.egloos.com/802690
1. Certbot으로 LetsEncrypt 설정하기
(This Contents is writen by Certbot Owners and modified by paperbox because of article purpose. CC-BY)
다행히 Certbot은 ARMHF 아키텍처를 지원합니다. 이에 따라 Certbot 공식 누리집에 있는 대로만 설정하시면 됩니다.
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install python-certbot-nginx
설치가 끝나면 -certonly 옵션을 주어서 알아서 NGINX 설정파일을 설정하는 방법과 그렇지 않고 Certbot이 NGINX 설정 파일을 수정해 SSL을 지원하도록 해주는 방법이 있습니다.
$ sudo certbot --nginx
이 뒤로는 Certbot이 시키는 대로 해 주시면 됩니다. 도메인 선택, 이메일 입력, HTTP를 HTTPS로 리다이렉팅할 지에 관한 여부를 고르는 등의 작업이 가능합니다.(certonly를 주지 않았을 경우)
2. DH Param 설정하기
이 부분은 꿈꾸는 꿈 블로그 내용을 참고해 주세요. 보안에 좀 더 신경쓴다면 하는 걸 추천한다는 데 적용해보니 역시나 라즈베리파이에서는 오래 걸려서 3시간 정도 걸렸습니다.
3. Cron Job 사용하기
* 본 내용은 Programming 블로그에서 내용을 빌려왔습니다. 내용 상 언급하지 않고는 진행할 수 없어 일부 내용을 기재합니다. 이 부분에 관해 의견 있으신 경우 댓글 주세요. Programming 블로그 운영자님께 죄송합니다.
Crontab 이라는 프로그램으로 Cronjob을 사용하기 때문에 설치되어 있지 않다면 아래와 같은 내용을 입력하여 설치합니다.
$ sudo apt install crontab
crontab -e를 눌러 어떤 명령어를 입력할 지 설정할 수 있습니다.
4. Cron Job으로 스크립트 입력하기
(This Script is owned by Server Vault Users and modified by paperbox. License is CC-BY-SA 3.0)
위와 같은 내용을 crontab -e에 입력해 주시면 됩니다. systemctl reload nginx 대신 service nginx reload나 service nginx restart를 쓰셔도 됩니다. 위 내용이 매 달 작동하는 스크립트가 아닌 이유는 만료 날짜가 다가오지 않으면 certbot이 인증서를 갱신해주지 않기 때문입니다.
5. 확인하기
아래와 같이 잘 적용된 것을 알 수 있습니다.
본 내용에 관한 문의사항은 댓글 및 트위터 멘션으로 알려주세요. 최대한 신속하게 처리하겠습니다.
'개발이야기 > Raspberry Pi' 카테고리의 다른 글
Pydio 삽질 ②: 'missing user in node url' 오류 해결하기 (0) | 2017.10.23 |
---|---|
Pydio 설치 삽질@라즈베리파이 (0) | 2017.10.22 |
[라즈베리파이2]Linaro 15.01 Development Branch를 Ubuntu 15.04 Vivid Vervet으로 업그레이드 하기기 (0) | 2015.07.03 |
[라즈베리파이2] Ubuntu 14.10(Linaro 15.01 Development Branch) ARM 설치 (12) | 2015.06.06 |
라즈베리파이2 가지고 놀기 (1) 구성준비 (0) | 2015.03.21 |
댓글
이 글 공유하기
다른 글
-
Pydio 삽질 ②: 'missing user in node url' 오류 해결하기
Pydio 삽질 ②: 'missing user in node url' 오류 해결하기
2017.10.23 -
Pydio 설치 삽질@라즈베리파이
Pydio 설치 삽질@라즈베리파이
2017.10.22 -
[라즈베리파이2]Linaro 15.01 Development Branch를 Ubuntu 15.04 Vivid Vervet으로 업그레이드 하기기
[라즈베리파이2]Linaro 15.01 Development Branch를 Ubuntu 15.04 Vivid Vervet으로 업그레이드 하기기
2015.07.03 -
[라즈베리파이2] Ubuntu 14.10(Linaro 15.01 Development Branch) ARM 설치
[라즈베리파이2] Ubuntu 14.10(Linaro 15.01 Development Branch) ARM 설치
2015.06.06