Windows 서버에서 Let's Encrypt(무료 인증서)를 발급하기
본 매뉴얼은 Let’s Encrypt Free SSL/TLS 무료인증서 동작 및 설치경로를 설명합니다.
가이드 안내
- iwinv 가상서버는 웹에서 콘솔 서비스를 제공하기 때문에 웹 계정을 도용당하게 될 경우 가상서버 보안에 취약할 수 있습니다.
- 리눅스 서버시 GRUB Password를 설정하면 GRUB 진입 시 패스워드가 필요하기 때문에 가상서버 도용을 방지할 수 있습니다.
- 해당 내용은 가상서버 뿐만 아니라 물리서버에서도 적용가능한 방법입니다.
✅ 테스트 환경 : Windows Server 2019 버전 1809
✅ 난이도 : 초급
주의 사항
- 리부팅 작업이 동반될 수 있으므로 서버가 정상적으로 올라오지 않는 경우가 발생할 수 있으니 유의해야 합니다.
- 작업 전 가상서버 이미지 생성 백업을 권장해 드립니다.
- 반드시 서버를 사용하지 않거나 접속자가 없는 시간을 선택해서 해당 작업을 진행합니다.
- 리부팅 과정에서 서버가 정상적으로 부팅되지 않을 수도 있습니다.
Let’s Encrypt란?
Let’s Encrypt는 Mozilla, Cisco, Akamai, EFF 등이 설립한 비영리 기관인 ISRG(Internet Security Research Group)를 통해 무료로 SSL/TLS 인증서를 제공하는 글로벌 인증기관(CA)입니다.
현재는 Meta(구 Facebook), Automattic(WordPress), Shopify, Google Chrome 등 세계적인 IT 기업들이 스폰서로 참여하고 있으며, 인터넷 환경을 더 안전하게 만들기 위해 전 세계 수억 개의 웹사이트가 Let's Encrypt를 활용하여 HTTPS 보안 통신을 구현하고 있습니다.
※ '온라인 기술지원' 서비스를 통해 iwinv에서 Let's Encrypt 인증서 발급 시 자동갱신 프로세스가 제공됩니다.
[기술지원 요청에 따른 작업비용 별도]
SSL/TLS 동작과정
SSL/TLS(Secure Socket Layer / Transport Layer Security)는 웹사이트의 전송 데이터를 ‘HTTPS 프로토콜’ 을 활용하여 암호화 통신하는 기술입니다. 웹사이트 전체나 개인정보 등의 데이터를 암호화하여 중간에 누군가 훔쳐보거나 위변조할 수 없도록 안전하게 전송합니다.
자세한 동작 과정은 아래와 같습니다.
-
웹 브라우저에서 https://도메인을 입력하여 서버에 보안 연결을 요청합니다.
-
웹 서버에서 자신의 공개키(Public Key)가 포함된 SSL/TLS 인증서를 전송합니다.
-
웹 브라우저에서 자신이 신뢰하는 인증기관(Root CA) 목록을 확인하여 서버가 보낸 인증서가 진짜인지 검증합니다.
-
웹 브라우저와 웹 서버가 안전한 알고리즘으로 패킷을 교환하며 실제 데이터를 암호화할 대 칭키(Session Key)를 실시간으로 합의하여 생성합니다.
-
암호화 키 생성이 완료되면 웹 브라우저와 웹 서버는 앞으로 이 키를 사용해 통신하겠다는 신호를 주고받으며 핸드셰이크를 완료합니다.
-
웹 브라우저에서 사용자가 요청한 URL과 HTTP 데이터를 앞서 합의된 대칭키로 암호화하여 전송합니다.
-
웹 서버에서 대칭키로 데이터를 복호화해 확인한 뒤 응답 데이터를 다시 대칭키로 암호화하여 전송하면, 웹 브라우저가 이를 복호화하여 화면에 표시합니다.
win-acme 다운로드
win-acme란?
Windows IIS 웹 서버 환경에서 Let's Encrypt의 무료 SSL/TLS 인증서를 자동으로 발급받고 만료 전 갱신까지 원스톱으로 관리해 주는 Windows 전용 오픈소스 CLI(명령줄) 클라이언트 툴입니다.
- IIS에서 사이트(도메인)에 대한 기본설정이 완료된 이후 진행하셔야 합니다.
- 기본 요구사항
-
IIS 8.0 이상(Windows Server 2012 이상) 버전을 사용하셔야 다중 도메인 구현 시 SNI 기능을 정상적으로 사용할 수 있습니다.
-
Let's Encrypt 정책에 따라 최대 100개 도메인(사이트)까지 하나의 SAN 인증서로 통합 생성합니다.
-
와일드 카드 인증서(*.도메인) 발급을 완벽히 지원하며, 이 경우 DNS 인증 방식을 사용하여야 합니다.
-
win-acme 실행을 위해 최소 .NET Framework 버전 4.7.2 이상이 설치되어 있어야 진행할 수 있습니다.
-
Win-acme 다운로드 URL : https://github.com/win-acme/win-acme/releases
URL로 접근하여 아래로 내리다 보면 Assets이 있는데 OS에 맞는 파일을 내려받은 후 적절한 위치에 압축을 해제합니다.
버전 v2.2.9.1701 기준 아래파일 다운로드 받습니다.
win-acme.v2.2.9.1701.x64.pluggable.zip

Let's Encrypt 인증서 발행
다운로드 파일을 압축을 풀면 아래파일들이 나오는데 wacs.exe 를 우클릭해서 관리자 권한으로 실행 하시면 됩니다.

그러면 아래 처럼 실행이 된 화면을 볼 수가 있습니다.

IIS 설정이 되어있는 경우 자동적으로 해당 도메인에 대한 정보를 파악 후 인증서 발급을 진행할 수 있습니다.
발급을 원하는 도메인 항목 선택화면은 하단 이미지처럼 인증서가 발급됩니다.


인증서 발급이 정상적으로 완료되면 인증서 설정 및 SSL/TLS 인증서 관련 IIS 설정이 완료된 것을 하단 메뉴를 통해 확인할 수 있습니다.



인증서 발급이 완료되면 자동으로 작업 스케줄러에 갱신 작업이 등록되어 별도 진행없이 갱신됩니다.

아래 인증서 관리 페이지에서도 확인이 가능합니다.

인증서 호환성
브라우저 및 OS별 호환성 리스트는 Let's Encrypt 공식 문서 (https://letsencrypt.org/docs/certificate-compatibility) 를 참고하시기 바랍니다.
- 인증서 관련 피해가 발생 시 손해보험사의 보상을 받으실 수 없습니다.
- 지원이 종료된 구형 운영체제(Windows 7 이하 등) 환경에서는 Let's Encrypt 루트 인증서를 인식하지 못해 정상적인 SSL 통신이 어려울 수 있습니다.
- 최신 보안 업데이트가 적용되지 않은 일부 구버전 웹 브라우저의 경우 호환성 문제가 발생할 수 있습니다.
- Let's Encrypt 인증서의 유효기간은 발급일로부터 90일이며, 글로벌 웹 표준 정책(구글 크롬 등)에 따라 향후 최대 유효기간이 45일 이하로 점차 단축될 예정입니다.