Windows + Apache + Let’s Encrypt

Let’s Encrypt는 비영리 인터넷 보안 연구 그룹 (ISRG)에서 제공하는 무료, 자동 및 공개 인증 기관입니다. 무료인 만큼 약간의 제약이 있으나 소규모 웹사이트나 단기간 사용시 매우 유용합니다. 자세한 설명은 https://letsencrypt.org/ko/about/ 에서 확인 할 수 있습니다.

본 포스팅은 Let’s Encrypt 을 이용하여 윈도우 시스템에서 운영되는 아파치 서버에 SSL을 설치하는 법을 알아보도록 하겠습니다. 이를 위해서는 아래와 같은 조건을 만족해야 합니다. 사내 교육 및 수행 기록을 위한 것으로 상세한 설명이 없는 점 양해 부탁합니다.

환경

  • 설정 가능한 도메인
  • AWS 윈도우 인스턴스
  • XAMPP

AWS 설정

인스턴스 생성

윈도우 이미지 선택
프리 티어 사용 가능 유형 선택
검토 및 시작하기
새 키 페어 생성 혹은 선택

보안 그룹 설정

보안 그룹 생성
HTTP, HTTPS 규칙 추가
보안 그룹 변경
보안 그룹 할당

윈도우 방화벽 설정

방화벽 설정 실행

윈도우키를 누르고 Firewall 입력 후 Windows Defender Firewall with Advanced Security 실행

규칙 추가
포트 선택
80, 443 입력
모든 연결 허용
이름 입력 후 완료

XAMPP 설치

Internet Explorer 설정

File download 를 Enable 로 설정

XAMPP 다운로드

https://www.apachefriends.org/download.html

윈도우용 설치 파일 다운로드, 최신 버전 추천
XAMPP 설치

도메인 설정

호스트 IP(A) 설정

설정 할 도메인의 IP(A) 를 생성된 인스턴스의 IP로 변경

연결 확인

http 연결 확인

Let’s Encrypt 설정시 도메인 소유권 확인을 위해서 이 단계에서 반드시 도메인이 서버에 연결 되어 있어야 함


Let’s Encrypt 설정

Assets 에 win-acme.v2.1.0.539.x64.pluggable.zip 파일 다운로드

https://github.com/PKISharp/win-acme/releases

압축을 푼 후 wacs.exe 파일 실행

아래의 순서대로 인증서 설치

사용 할 도메인 명 입력
편의를 위해 1번 선택
Document Root 패스 입력
아파치 서버를 위한 PEM 파일 선택
인증서가 저장될 경로 입력
연락 가능한 이메일 입력
약관에 동의 후 설치 시작
설치에 문제가 있을 시 본 화면에서 경고 후 설치를 실패 함
도메인 검증이 완료되면 설정 한 경로에 인증서 파일이 생성 됨

Apache 설정

httpd-ssl.conf 파일 편집
아래의 코드와 같이 설정 변경 후 저장
<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "C:/xampp/htdocs"
ServerName www.ahnsw.com:443
ServerAdmin sewonist@gmail.com
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

SSLCertificateFile "C:\xampp\apache\certs\www.ahnsw.com-crt.pem"

SSLCertificateKeyFile "C:\xampp\apache\certs\www.ahnsw.com-key.pem"

SSLCertificateChainFile "C:\xampp\apache\certs\www.ahnsw.com-chain.pem"

...

</VirtualHost>   

도메인 명과 경로, 각 파일명은 본인의 환경에 맞게 설정

아파치 서버 재시작
https://도메인 으로 들어가 인증서 확인

Conclusion

여기까지 윈도우 아파치 서버에 SSL을 설치하는 과정을 살펴 보았습니다. Let’s Encrypt 는 6개월에 한번씩 갱신해야 하고 약간의 속도 제한이 있으나 무료이며 투명합니다. 또한 자동갱신도 제공하기 때문에 대형 사이트가 아니라면 크게 사용상의 불편함이 없습니다. 아직 SSL 을 사용하고 있지 않는 사이트라면 등록을 적극 추천합니다. 다음엔 리눅스에서 설치법을 알아보도록 하겠습니다.

감사합니다.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.