VULTR TLS-SNI-01 해제 및 HTTP-01 연결 방법

VULTR TLS-SNI-01 인증 만료 이메일

TLS-SNI-01 방식으로 Let’s Encrypt에서 HTTPS 인증을 받은 몇 개의 도메인에 대해서 인증 만료 이메일이 왔습니다.

VULTR-tls-sni-01-1

해당 도메인에 대해서 2~3월 까지 HTTP-01 또는 DNS-01 방식으로 재연결을 하지않으면 HTTPS 인증이 만료된다는 내용입니다.

Let’s Encrypt로 HTTPS를 연결할 때 설치했던 Certbot 프로그램의 구버전을 설치한 경우 위와 같은 이메일을 받습니다.

서버 기준

VULTR, 워드프레스, 우분투 16.04 xenial, NGINX

스냅샷

실수할 수 있으므로 스냅샷으로 본인의 계정을 삭제하고 복원하고, DNS 주소 변경 및 Root 계정 비밀번호 재갱신 하는 연습을 완벽히 숙지한 상태에서 시도합니다.

certbot 버전 체크

경고를 받은 도메인의 putty에 로그인을 해서 아래 명령어로 certbot의 현재 설치된 버전을 확인합니다.

certbot --version

0.28 버전 미만으로 조회될 확률이 높습니다.

certbot 버전 업그레이드

아래 명령어를 한 줄씩 차례대로 입력합니다. Putty를 사용해서 타이핑 하지 말고 복사해서 마우스 우클릭으로 붙여넣기로 실수를 줄입니다.

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx

설치를 다했으면 certbot 버전을 다시 체크 해서 0.28 버전 이상인지 확인합니다.

certbot --version

TLS-SNI-01연결 해제

아래 코드에서 tls-sni-01 부분만 지우고 입력합니다.

sudo sh -c "sed -i.bak -e 's/^\(pref_challs.*\)tls-sni-01\(.*\)/\1http-01\2/g' /etc/letsencrypt/renewal/*; rm -f /etc/letsencrypt/renewal/*.bak"

입력하고 실행하면 아무런 메시지가 나오지 않으면 정상입니다.

sudo sh -c "sed -i.bak -e 's/^\(pref_challs.*\)\(.*\)/\1http-01\2/g' /etc/letsencrypt/renewal/*; rm -f /etc/letsencrypt/renewal/*.bak"

 

HTTP-01 재연결

명령어를 입력하면 certbot를 최신버전으로 설치했기 때문에 HTTPS를 HTTP-01 방식으로 자동 재연결하는 절차가 나옵니다.

VULTR 방화벽을 켜놓고 하면 오류가 나는 것 같습니다. 방화벽에서 잠시 해당 사이트를 해제하고 하면 잘 됩니다.

sudo certbot renew --dry-run

저도 리눅스 명령어나 네트워크 이론을 정확하게 숙지하고 하는 절차가 아니므로 틀린 부분이 많을 수 있습니다.

스냅샷으로 8번 정도 지우고 복원하면서 더듬거리면서 찾은 방법이라 정확한 정보는 아닙니다. 자세한 정보는 아래 외부 참조의 커뮤니티 및 Let’s Encrypt 공식 사이트를 참고하기를 바랍니다.

수동 갱신

그리고 이 절차를 따를 경우 Let’s Encrypt 자동 갱신은 되지 않습니다. 보통 만료 15일 정도 전에 등록한 이메일로 문자가 옵니다. 그리고 한 달 전에 수동으로 갱신을 할 수 있습니다. putty로 해당 계정에 접속을 해서 아래 명령어를 치면, www가 있는 버전과 없는 버전에 대한 연결 선택 메시지가 나옵니다. Enter를 치면 둘 다 선택이 됩니다. 이러면 수동으로 연결 갱신이 가능합니다.

certbot --nginx --redirect

내부 참조

외부 참조