본문 바로가기
코딩해보니/PHP

XAMPP로 로컬 호스트에서 SSL 인증 설정으로 HTTPS 사용하기(for 윈도우)

by 위시랜 2024. 10. 26.

윈도우를 사용하는 컴퓨터에 개발 환경을 빠르게 구축해 간단히 작업을 해보고 싶은 경우에 HTTPS 사용까지 하고 싶은 경우가 있다.

 

이런 경우 가장 손쉽게 할 수 있는 방법이 XAMPP와 같은 패키지 프로그램을 사용하는 것이 좋다.

 

다운로드해 설치까지 10분 이내로 가능하니 말이다.

그런데, HTTPS를 사용하려면 추가 설정이 필요하다.

 

그 과정과 방법을 소개한다.

 

1. XAMPP 설치

당연히 XAMPP를 설치하자.

XAMPP는 테스트용 웹 서버 구축을 간편하게 할 수 있는 프로그램으로 이만한 게 없다.

XAMPP는 Apache + MariaDB + PHP + Perl이 포함된 무료 오픈 소스 패키지이다.

아래 공식 홈페이지에서 다운로드하고 설치할 수 있다.

 

 

Download XAMPP

Includes: Apache 2.4.58, MariaDB 10.4.32, PHP 8.0.30 & PEAR + SQLite 2.8.17/3.38.5 + multibyte (mbstring) support, Perl 5.34.1, ProFTPD 1.3.6, phpMyAdmin 5.2.1, OpenSSL 1.1.1w, GD 2.2.5, Freetype2 2.4.8, libpng 1.6.37, gdbm 1.8.3, zlib 1.2.11, expat 2.0.1,

www.apachefriends.org

XAMPP 설치 후 컨트롤 패널을 실행해 보면 아래와 같다.

XAMPP Control Panel
XAMPP Control Panel

제대로 동작하는지 바로 확인해 보기 위해 Apache를 실행해 본다.

위 화면과 같이 Apache 옆의 [Start] 버튼을 클릭하자.

그러면 아래 화면과 같이 Apache가 초록색 배경으로 표시되고, PID(s)와 Port(s) 항목에 값이 나온다.

XAMPP Control Panel - Apache Start
XAMPP Control Panel - Apache Start

Port(s)에 80, 443이 표시되는 것으로 보아 기본적으로 HTTP와 HTTPS가 사용되는 것을 알 수 있다.

그러면 브라우저에서 http://localhost로 접속해 보면 아래 화면과 같이 http://localhost/dashboard/로 리다이렉션까지 되면서 페이지를 보여주는 것을 알 수 있다. 정상적으로 설치가 잘 되었다.

XAMPP 설치 후 Apache 실행 후 http://localhost 접속 화면
XAMPP 설치 후 Apache 실행 후 http://localhost 접속 화면

그러면, https://localhost로 접속해 보면 아래와 같은 화면을 보게 된다.

XAMPP 설치 후 Apache 실행 후 https://localhost 접속 화면
XAMPP 설치 후 Apache 실행 후 https://localhost 접속 화면

주소 표시줄에 있는 "주의 요함"을 클릭해 보면 아래와 같이
"⚠️이 사이트는 보안 연결(HTTPS)이 사용되지 않았습니다. "라는 메시지를 확인할 수 있다.

⚠️이 사이트는 보안 연결(HTTPS)이 사용되지 않았습니다.
⚠️이 사이트는 보안 연결(HTTPS)이 사용되지 않았습니다.

이렇듯 HTTPS(보안 연결)를 사용하기 위해서는 localhost(로컬 호스트)에 인증서를 설치해야 한다.


2. SSL 인증서 만들기

이제 로컬 호스트에 보안 연결(HTTPS)을 사용하기 위해 가장 먼저 해야 할 일은 SSL 인증서를 만드는 것이다.

1) makecert.bat 수정

XAMPP에는 인증서 생성을 간편하게 할 수 있게 일괄 스크립트를 제공하고 있다.

XAMPP 설치 폴더가 기본적으로 C:\xampp라는 가정하에 얘기하면 아래 경로로 가보자.

C:\xampp\apache

해당 폴더로 가면 makecert.bat 파일이 있을 것이다.

makecert.bat 파일을 편집기로 열어 다음과 같은 내용들을 볼 수 있다.

{XAMPP 설치 폴더}/apache/makecert.bat
{XAMPP 설치 폴더}/apache/makecert.bat

위 내용을 조금 수정한다.

9번 라인을 보면 아래와 같은 내용을 볼 수 있는데,

bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365

이것을 다음과 같이 수정하자.

bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 1825 -extfile v3.ext

365를 1825로 바꾸고 뒤로 -extfile v3.ext를 추가했다.

365는 인증서 유효기간인데 이를 5년으로 바꾼 것이다. 이 기간은 그대로 둬도 관계없지만 -extfile v3.ext는 추가해 주자. SSL 인증서의 V3 Extension을 설정해 주기 위해서 필요하다.

이렇게 수정 후 저장한다.

2) v3.ext 파일 생성

앞서 V3 Extension 파일로 정의한 v3.ext 파일을 만들어준다.

위치는 makecert.bat 파일과 같은 위치(예: C:\xampp\apache)에 만들고 다음과 같이 작성한다.

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = *.wishlan.com
DNS.3 = wishlan.com
DNS.4 = 127.0.0.1

위 내용 중에 DNS.2와 DNS.3에 표기된 wishlan.com은 내가 테스트로 추가한 도메인이다.

자신의 PC에서 작업하려는 도메인으로 변경하면 된다.

3) SSL 인증서 생성

이제 makecert.bat를 실행해 SSL 인증서를 생성한다.

명령 프롬프트나 터미널을 열어 makecert.bat를 실행하자.

makecert.bat 실행 화면
makecert.bat 실행 화면

계속 뭘 입력하라고 나올 텐데, 다른 건 입력하지 않아도 무방하지만 위 화면에 노란색으로 표시한 부분을 주의 깊게 보자.

Common Name 항목에서 앞서 v3.ext 파일에 설정한 도메인(예: wishlan.com)을 입력하자.

4) SSL 인증서 설치

이제 생성한 SSL 인증서를 설치한다.

설치는 생성된 인증서를 실행하는 것으로 시작한다.

생성된 인증서 위치는 apache\conf\ssl.crt 폴더에 server.crt 파일이다.

{XAMPP 설치 폴더}\apache\conf\ssl.crt\server.crt
{XAMPP 설치 폴더}\apache\conf\ssl.crt\server.crt

(참고로 나는 xampp 설치를 D드라이브에 했기 때문에 위 경로가 D:\xampp 이다.)

server.crt 파일을 실행하면 아래와 같이 인증서 창을 볼 수 있다.

인증서 확인 창
인증서 확인 창

유효 기간도 5년으로 설정된 것을 알 수 있지만 이 인증서는 CA 루트 인증서를 신뢰할 수 없습니다. 신뢰를 얻으려면, 이 인증서를 신뢰할 수 있는 루트 인증 기관 저장소에 설치하십시오.라는 메시지를 볼 수 있다.

이제 이 창에서 아래에 있는 [인증서 설치] 버튼을 클릭한다.

인증서 설치하기
인증서 설치하기

① [인증서 설치] 버튼 클릭하면 위 오른쪽 화면과 같이 "인증서 가져오기 마법사" 창이 실행된다.

② 인증서 가져오기 마법사 창에서 [저장소 위치]를 '로컬 컴퓨터'로 선택한다.

③ [다음] 버튼을 클릭한다. 다음 버튼을 클릭하면 UAC 창이 뜰 텐데 [예]를 클릭하고 이어간다.

인증서 설치하기
인증서 설치하기

④ [인증서 저장소]를 '모든 인증서를 다음 저장소에 저장'을 선택한다.

⑤ [찾아보기] 버튼을 클릭한다.

⑥ [인증서 저장소 선택] 창에서 '신뢰할 수 있는 루트 인증 기관'을 선택한다.

⑦ [확인] 버튼을 클릭한다.

인증서 설치하기
인증서 설치하기

⑧ '인증서 저장소:' 항목에 '신뢰할 수 있는 루트 인증 기관'이 입력되는 것을 확인한다.

⑨ [다음] 버튼을 클릭한다.

인증서 설치하기
인증서 설치하기

⑩ [마침]을 클릭하면 인증서를 가져옵니다.라고 한다. [마침] 버튼을 클릭한다.

⑪ '가져오기를 완료했습니다.' 확인 창이 나타나고 [확인] 버튼을 클릭한다.

인증서 확인 창
인증서 확인 창

⑫ server.crt를 실행했던 [인증서] 창을 [확인] 버튼을 클릭해 닫는다.

다시 server.crt를 실행해 보면 아래와 같이 달라진 것을 확인할 수 있다.

인증서 설치 후
인증서 설치 후


3. Apache 재시작 및 확인

이제 SSL이 제대로 적용되는지 Apache를 재시작 후 https://localhost로 접속해 확인해 본다.

XAMPP 컨트롤 패널 - Apache 재시작
XAMPP 컨트롤 패널 - Apache 재시작

위 XAMPP 컨트롤 패널에서 Apache가 실행 중이라는 것을 알 수 있고, 재시작은 [Stop] 버튼을 클릭해 중지한 다음 다시 [Start] 버튼으로 바뀌면 클릭해 시작하면 된다.

https://localhost로 접속해 보면 아래와 같이 잘 동작하는 것을 알 수 있다.

https://localhost 접속 화면
https://localhost 접속 화면

참고로 앞서 wishlan.com 도메인도 추가했는데, 이 도메인으로도 로컬 호스트 설정이 잘 되었는지 확인해 보기 위해서는 윈도우의 hosts 파일에 127.0.0.1 wishlan.com 을 추가해 저장 후 https://wishlan.com으로 접속해 확인해 보면 된다.

아래와 같이 잘 되는 것을 알 수 있다.

https://wishlan.com 접속 화면
https://wishlan.com 접속 화면

이렇게 구성할 수 있으면 자신의 PC에서 간단하게 개발하고 테스트해보는 환경을 비교적 쉽게 구성할 수 있다.

 

- 끝 -

 

상기 상품 배너는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글