IIS에서 Let's Encrypt 인증서를 발급받는 방법

Azure에 있는 윈도우즈 VM에서 사용할 인증서를 Let’s Encrypt에서 무료로 발급받는 방법을 공유합니다. 해당 머신의 웹서버는 IIS인 경우입니다.

Let’s Encrypt 인증서 발급을 도와주는 RCL Client for Let’s Encrypt 서비스를 사용합니다. Let’s Encrypt 인증서는 무료이지만, 이 서비스는 free trial이 만료되면 유료로 전환되는 점에 주의하시기 바랍니다. Azure에서 이 서비스를 찾아 가입하고 계정을 활성화하면 아래와 같이 Let’s Encrypt 인증서 발급을 시작할 수 있습니다.

용도에 맞는 적합한 옵션을 선택하여 "Select"를 클릭하면 아래와 같이 필요한 정보를 입력하게 됩니다. Azure VM에 부여한 도메인명(FQDN)이 myweb.koreacentral.cloudapp.azure.com이라면 아래와 같이 입력해야 합니다. Let’s Encrypt가 인증서를 발급하기 전에 해당 도메인의 소유자인지 확인하는 방법에는 HTTP challenge와 DNS challenge의 두 가지가 있는데 우리는 HTTP Challenge 방법을 사용합니다.

필요한 정보를 모두 입력하고 "Create"을 클릭하면 임의로 생성된 파일이 주어집니다. 이 파일을 지정한 경로에 두어야만 HTTP challenge가 확인되어 인증서를 발급받을 수 있습니다.

먼저, IIS의 웹 루트 아래에 지정된 경로와 파일을 생성합니다.

이제 이 파일을 HTTP로 접근할 수 있도록 설정합니다. 웹 루트 아래에 있는 web.config 파일에 아래와 같이 세 줄을 추가합니다.

image

그런 다음, 대상 웹사이트의 mime 타입에 아래와 같이 하나를 추가합니다.

이제, 대상 웹사이트의 바인딩에 HTTP를 추가하고 웹사이트를 재시작합니다. Azure의 네트워크 설정에서 80 포트를 열어주는 것도 잊지 말아야 합니다.

이제 필요한 준비가 모두 끝났습니다. RCL Client에서 인증서 발급을 마치고 잠시 기다리면 다운로드할 수 있습니다. 다운로드한 인증서를 IIS에서 import하여 HTTPS 바인딩에 적용해주면 됩니다. HTTPS 바인딩이 정상적으로 작동하는 것을 확인한 후에는 80 포트를 닫고, web.config도 원래 설정으로 바꾸고, HTTP 바인딩도 제거합니다. 웹사이트를 재시작해주면 모든 작업이 마무리됩니다.

2 Likes