LetsEncrypt 는 무료 인증서 발급으로 https 확산에 혁혁한 공을 세운 단체입니다.1

특히 Certbot이라는 훌륭한 도구 덕분에 Linux 계열에서 Apache를 쓰든 Nginx를 쓰든 상관 없이 명령 몇 줄로 인증받는 시대가 열렸습니다.

그러나 윈도우에서는 공식적으로 LetsEncrypt 설치를 하는 방법이 제공되지 않습니다. 하지만 소스가 충분히 공개되어 있기에 누구든지 LetsEncrypt 인증 서버에 인증을 요청하고 인증서를 발급할 수 있습니다.

그러면 그냥 명령 쳐서 발급받으면 되잖아.

라고 하기엔 LetsEncrypt 인증서의 기간이 90일 이내로 짧기 때문에 자동 실행으로 갱신받아야만 하고, 그런 일을 대신해줄 프로그램은 필수입니다.

그런 역할을 해줄 프로그램을 소개해볼까 합니다.

Certify The Web

https://certifytheweb.com/

현재는 3.0.11 Stable 버전과 4.0의 Alpha 버전으로 나뉘어 있습니다. Alpha4가 문제가 있어서 Alpha3로 재공개했다는군요.

설치는 꽤 빠르게 이루어집니다.

메인 화면은 이렇게 생겼습니다.

바로 New Certificate를 눌러서 새로운 인증서를 발급해봅시다.
참고로 정식 버전이 아닌 경우에 상용으로 쓰지 말라고 경고가 여러 차례 뜹니다.

 

LetsEncrypt측에 전달할 나의 이메일을 적습니다.

만료 시기 도래 등 인증서에 특이사항이 있을 경우 향후 알려줄 수 있습니다.
이 기능은 리눅스 콘솔 버전 certbot과 완전히 동일하군요.

 

현재 IIS에서 작동중인 사이트를 선택합니다. 여러 곳에 쓰고 싶다면 여러 사이트를 모두 선택해도 되고, 사이트 선택 없이 발급만 할 수도 있습니다.
Request Certificate 버튼을 누르면 인증서 발급이 완료됩니다. Settings에 들어가서 갱신 일정도 올바른지 확인하세요.

이렇게 하면 IIS의 SSL 인증서에 LetsEncrypt가 올라가는 것을 확인할 수 있고, 향후에도 간단하게 변경할 수 있습니다.

단순히 HTTPS 통신에만 쓰는 것이 아니라, 원격 배포 기능과 FTP SSL 등 인증서가 필요한 분야가 많이 있으므로 폭넓게 활용할 수 있겠습니다.

한계

무료 버전은 5개의 사이트만을 관리할 수 있습니다. 프로 라이센스로 3개 사이트 더 추가하려면 약 50달러, 엔터프라이즈 라이센스로 100개 사이트 더 추가하려면 349달러네요. 여러 개 구매도 가능하다니 프로에 프로를 끼얹어도 되겠습니다.

문제 해결

  • 테스트 버튼을 눌러봤는데 실패할 수 있습니다. 외부 접속 체크시 DNS 확인이 올바르지 않을 수 있습니다. 인터넷 상황이 문제 없고 포트 바인딩이 되어 있으며 경로에 방화벽이 가로막지 않고 있다면, 과감히 Request Certificate를 눌러보세요.
  • 그 외에 Cloudflare 같은 DNS 서비스를 이용하고 있다면,  API Key를 발급받아서 넣고 이 앱에서 DNS-01 방식으로 체크를 요구할 수 있습니다. 이렇게 하면 서버의 파일 저장 공간에 임시 acme 테스트 없이 더 빠르고 문제 없이 도메인 소유 및 매치 여부를 확인할 수 있습니다. 와일드 카드 인증서(4 버전 이상) 발급시 DNS 인증이 필요할 것입니다.

Footnotes

  1. 물론 Cloudflare의 유니버셜 SNI 인증서가 더 간편하고 신경쓸 필요가 없긴 합니다. 그러나 Cloudflare 중계 서버와 내 서버 사이가 보안 연결이 아닌 점이 있고 그걸 해결하려면 Dedicated Certification 이상의 상품이 필요하므로 돈이 듭니다.