티스토리 뷰
나는 워드프레스를 써야 할 일이 있을 때 디지털오션(https://cloud.digitalocean.com/)을 사용한다.
(이유는 저렴해서..?!)
여튼 오늘은 워드프레스 설치 후 https (ssl) 을 적용하는 방법을 기록해둔다.
아래의 유튜브 영상을 보면 디지털오션에 워드프레스를 설치하는 것부터 ssl을 적용하는 것까지 설명을 아주 잘해주셨다.
https://www.youtube.com/watch?v=OA7t9zzL3DM
매우 쉬워보이지만, 언제나 내가 하면 잘 안된다.
사실 아래의 과정에서 중간중간 오류도 나고 헤맸던 부분이 많은데, 시도해보면서 캡쳐를 하지 않아서 기억이 나지 않는다.
(기억이 나면 중간중간 업데이트를 해드리겠습니다 ㅠㅠ)
여기서는 위 내용을 글로 풀어 기록해두려고 한다.
(워드프레스 설치후 도메인 셋팅이 완료된 상태라고 가정하고 시작)
그런데, 사실.... 디지털오션 공식 홈페이지에 글로 풀어놓은 것도 이미 있다.ㅎㅎ
1. 디지털오션의 콘솔을 이용하거나, OS의 터미널을 이용해 ssh로 접속한다.
2. 먼저 Let’s Encrypt Client 클라이언트를 설치하자
(레포지토리 추가)
$ sudo add-apt-repository ppa:certbot/certbot
(apt-get 업데이트)
$ sudo apt-get update
(클라이언트 설치)
$ sudo apt-get install python-certbot-apache
설치가 완료되었다.
3. 인증서를 받아보자.
$ sudo certbot --apache -d example.com -d www.example.com
example.com 과 www.example.com 두개 모두에 인증서를 적용하려면 위처럼 써야 한다.
하기 전에 꼭, 도메인 dns관리에서 두 도메인에 a레코드가 설정되어 있는지 확인하자.
나오는 설명대로 따라가면 된다. 리다이렉팅을 할 것 인지도 설정하고.
인증서를 실수로 두 개 받으면 서버에 인증서가 2개가 되는데, 이것 때문에 나중에 오류가 조금 날 수도 있다.
혹시 두 개가 되었다면, 하나를 삭제해주자.
오류가 난다고 너무 자주 명령어를 치지 말자. 5번 이상 시도하면 막힌다. 나는 1시간 뒤에 풀렸다..
4. crontab 크론탭을 이용해 자동갱신을 해보자.
우선 renew 명령어가 잘 작동하는지 확인한다.
$ sudo certbot renew --dry-run
--dry-run은 실제로 인증서를 처리하기 전에 제대로 되는지 확인만 하는 명령어라고 한다.
* 여기서부터는 아래의 블로그를 참고했다.
https://devlog.jwgo.kr/2019/04/16/how-to-lets-encrypt-ssl-renew/
아래의 명령어로 크론탭 편집 페이지로 간다.
$ sudo crontab -e
에디터는 편한 거로 하면 된다.
위 블로그의 내용을 참조하여 원하는 주기대로 명령어를 작성한다.
나는 그냥 그대로 했다.
0 18 1 * * /usr/bin/certbot renew --renew-hook="sudo systemctl restart apache2"
이 명령어는 "매월 1일 03시에 인증서를 갱신하고, 갱신을 성공적으로 마치면 아파치를 재시작한다."라는 명령어라고 한다.
명령어를 crontab 제일 하단에 붙여 넣고 저장하고 나오자.
PS. 제대로 작동할지는 아직 잘 모르겠다.. 3달 뒤에 사이트가 안들어가진다는 소식이 들리면 실패했다는 말이겠지........^^
'개발' 카테고리의 다른 글
[Leaflet - GeoServer - WMS] popup 레이어로 데이터 가져오기 (GetFeatureInfo) (2) | 2020.10.23 |
---|---|
[Leaflet - GeoServer] WMS layer 로 GIS 지도 퍼블리싱하기 (0) | 2020.10.22 |
아이프레임 내부 form에서 submit후 부모창에서 상태 변화주기 (0) | 2017.09.13 |
No module named google.appengine.api 해결 방법 및 bash_profile 생성하기 (0) | 2017.06.03 |
Command "python setup.py egg_info" failed with error code 1 in ~~ 에러 (0) | 2017.06.03 |