본문으로 건너뛰기

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 프로토콜’ 을 활용하여 암호화 통신하는 기술입니다. 웹사이트 전체나 개인정보 등의 데이터를 암호화하여 중간에 누군가 훔쳐보거나 위변조할 수 없도록 안전하게 전송합니다.

자세한 동작 과정은 아래와 같습니다.

  1. 웹 브라우저에서 https://도메인을 입력하여 서버에 보안 연결을 요청합니다.

  2. 웹 서버에서 자신의 공개키(Public Key)가 포함된 SSL/TLS 인증서를 전송합니다.

  3. 웹 브라우저에서 자신이 신뢰하는 인증기관(Root CA) 목록을 확인하여 서버가 보낸 인증서가 진짜인지 검증합니다.

  4. 웹 브라우저와 웹 서버가 안전한 알고리즘으로 패킷을 교환하며 실제 데이터를 암호화할 대칭키(Session Key)를 실시간으로 합의하여 생성합니다.

  5. 암호화 키 생성이 완료되면 웹 브라우저와 웹 서버는 앞으로 이 키를 사용해 통신하겠다는 신호를 주고받으며 핸드셰이크를 완료합니다.

  6. 웹 브라우저에서 사용자가 요청한 URL과 HTTP 데이터를 앞서 합의된 대칭키로 암호화하여 전송합니다.

  7. 웹 서버에서 대칭키로 데이터를 복호화해 확인한 뒤 응답 데이터를 다시 대칭키로 암호화하여 전송하면, 웹 브라우저가 이를 복호화하여 화면에 표시합니다.

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

win-acme 다운로드 사진

Let's Encrypt 인증서 발행


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

win-acme 압축 푼 사진

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

win-acme 실행 사진

IIS 설정이 되어있는 경우 자동적으로 해당 도메인에 대한 정보를 파악 후 인증서 발급을 진행할 수 있습니다.

발급을 원하는 도메인 항목 선택화면은 하단 이미지처럼 인증서가 발급됩니다.

인증서 발급1 사진
인증서 발급2 사진

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

인증서 확인1 사진
인증서 확인2 사진
인증서 확인3 사진

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

작업 스케줄러 사진

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

인증서 관리 사진

인증서 호환성


브라우저 및 OS별 호환성 리스트는 Let's Encrypt 공식 문서 (https://letsencrypt.org/docs/certificate-compatibility) 를 참고하시기 바랍니다.

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