XAMPP 설치 환경에서 HTTPS(SSL) 적용 방법

워드프레스를 이용해 블로그나 홈페이지를 운영하는 경우, 혹은 다양한 경우에도 자신이 사용중인 윈도우 PC에 테스트 환경을 만들어서 확인해 보고 싶은 경우가 있습니다.

이런 경우 가장 손쉽게 할 수 있는 방법이 XAMPP와 같은 패키지 프로그램을 사용하는 것입니다.
그런데, 요즘 사이트들은 HTTPS(SSL) 보안 접속을 기본으로 하기에 테스트 환경도 SSL이 적용된 환경이어야 제대로 확인할 수 있는 경우가 많습니다.

본 설명서에는 XAMPP 설치 후 HTTP(SSL) 적용 방법을 설명합니다.


1. XAMPP 설치

당연하게도 가장 먼저 해야하는 과정이 XAMPP 패키지를 설치하는 것입니다.
XAMPP는 Apache + MariaDB + PHP + Perl이 포함된 무료 오픈 소스 패키지이다.

아래 공식 홈페이지에서 다운로드하고 설치합니다.

XAMPP for Windows 항목에 있는 패키지 중에 하나를 다운로드([Download (64bit)] 버튼 클릭) 합니다.

XAMPP 설치 환경에서 HTTPS(SSL) 적용

현재 운영중인 환경이 있다면 최대한 비슷한 PHP 버전 환경에 맞는 것을 다운로드 합니다.


2. XAMPP 설치 확인

XAMPP 설치가 정상적으로 되었는지 다음 그림을 참고해 순서에 따라 진행합니다.

2-1. XAMPP 컨트롤 패널 및 Apache 실행

XAMPP Control Panel 실행 화면
XAMPP Control Panel 실행 화면
  • ① ‘XAMPP Control Panel’을 실행합니다.
  • ② [Start] 버튼을 클릭해 Apache 웹 서버를 실행합니다.

Apache가 정상적으로 실행이 되면 아래 그림과 같이 Apache가 초록색 배경으로 표시되고, PID(s)와 Port(s) 항목에 값이 표시됩니다.

XAMPP Control Panel : Apache 시작 화면
XAMPP Control Panel : Apache 시작 화면

Port(s)에 80, 443이 표시되는 것으로 보아 기본적으로 HTTP와 HTTPS가 사용되는 것을 알 수 있습니다.
❗참고 : 80은 HTTP 기본 포트를 나타내며, 443은 HTTPS의 기본 포트입니다.


2-2. http 접속 확인

  • 브라우저를 실행 후 http://localhost로 접속합니다.
XAMPP 설치 후 정상 동작 확인

http://localhost/dashboard/로 리다이렉션 되면서 페이지를 보여주는 것을 알 수 있습니다.
위와 같은 화면을 확인했다면 http 접속은 잘되고 있으며 XAMPP 설치도 완료 된 것입니다.

❗참고 : MySQL도 실행 후 확인이 필요하지만, 여기서는 HTTPS 접속 방법을 설명하므로 생략합니다.


2-3. https 접속 확인

  • 브라우저에 https://localhost로 접속합니다.
XAMPP 설치 후 https 접속 확인
XAMPP 설치 후 https 접속 확인

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


3. HTTPS 접속 설정 하기

HTTPS(보안 연결)을 사용하기 위해서는 SSL 인증서가 필요합니다.
따라서, 로컬 호스트에 보안 연결(HTTPS)을 사용하기 위해 가장 먼저 해야하는 것은 SSL 인증서를 만들고 설치하는 것입니다.
그 과정을 요약하면 다음과 같습니다.

  1. 인증서 생성 스크립트 수정(makecert.bat 수정)
  2. Extension 파일 생성 (v3.ext 파일 생성)
  3. SSL 인증서 생성
  4. SSL 인증서 설치

3-1. 인증서 생성 스크립트 수정(makecert.bat 수정)

XAMPP를 설치한 Apache에 인증서 생성을 간편하게 할 수 있게 배치 스크립트가 있습니다.
XAMPP 설치 폴더가 기본적으로 C:\xampp 라는 가정하에 설명하겠습니다.

C:\xampp\apache\makecert.bat 파일을 열어 확인합니다.

@echo off
set OPENSSL_CONF=./conf/openssl.cnf

if not exist .\conf\ssl.crt mkdir .\conf\ssl.crt
if not exist .\conf\ssl.key mkdir .\conf\ssl.key

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

set OPENSSL_CONF=
del .rnd
del privkey.pem
del server.csr

move /y server.crt .\conf\ssl.crt
move /y server.key .\conf\ssl.key

echo.
echo -----
echo Das Zertifikat wurde erstellt.
echo The certificate was provided.
echo.
pause

9번 라인의 내용을 아래와 같이 수정합니다.

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년으로 바꾼 것입니다.
365 그대로 둬도 관계없지만 -extfile v3.ext는 추가합니다.
SSL 인증서의 V3 Extension을 설정해 주기 위해서 필요합니다.

이렇게 수정 후 저장합니다.


3-2. Extension 파일 생성 (v3.ext 파일 생성)

앞서 makecert.bat에 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 = *.testdomain.com
DNS.3 = testdomain.com
DNS.4 = 127.0.0.1

위 내용 중에 DNS.2와 DNS.3에 표기된 testdomain.com은 로컬 테스트 환경에 사용할 도메인을 추가한 것입니다.
자신의 PC에서 작업하려는 도메인으로 변경하면 됩니다.


3-3. SSL 인증서 생성

명령 프롬프트 혹은 Windows Power Shell을 실행한 후 apache 경로로 이동합니다.
아래 예시 화면의 XAMPP 설치 경로가 D:\xampp 이므로 Apache 설치 경로는 D:\xampp\apache가 됩니다.

XAMPP 설치 후 SSL 인증서 생성하기

ls 명령어 혹은 dir/w 명령어로 makecert.bat 와 v3.ext 파일이 있는지 다시한번 확인합니다.

makecert.bat를 아래와 같이 입력하고 엔터를 눌러 실행하면 SSL인증서 생성을 위한 과정이 시작됩니다.

D:\xampp\apache> .\makecert.bat

생성 과정에서 입력해야 하는 정보는 다음을 참고해 진행합니다.
파란색으로 표시된 텍스트가 필자가 입력한 정보이니, 참고해 임의로 입력하면 됩니다.

STEP1. PEM 비밀 번호를 입력합니다.

  • Enter PEM pass phrase: 1234
  • Verifying – Enter PEM pass phrase:1234

STEP2. 다음은 인증서 요청에 포함될 정보를 입력하라는 메시지가 표시됩니다.
입력하려는 정보는 고유 이름(DN)입니다.
필드가 꽤 많지만 일부는 비워둘 수 있습니다.
일부 필드에는 기본값이 설정되어 있습니다.
‘.’을 입력하면 필드가 비워집니다.

  • Country Name (2 letter code) [AU]: KR
  • State or Province Name (full name) [Some-State]: Korea
  • Locality Name (eg, city) []: Seoul
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]: EasyMBox
  • Organizational Unit Name (eg, section) []: EasyMBox
  • Common Name (e.g. server FQDN or YOUR name) []: testdomain.com ← v3.ext에 작성한 도메인
  • Email Address []: boxkeeper@easymbox.com

STEP3. 다음은 인증서 요청과 함께 보내드릴 다음 ‘추가’ 속성을 입력하는 과정입니다.

  • A challenge password []: admin
  • An optional company name []: EasyMBox
  • Enter pass phrase for privkey.pem: 1234 ← 처음 입력한 PEM 비밀번호 입력

다음과 같이 비슷한 화면이 나오고 ‘계속하려면 아무 키나 누르십시오 . . .’ 메시지가 나오면 아무키나 누르고 인증서 생성을 종료합니다.

writing RSA key
Certificate request self-signature ok
subject=C = KR, ST = Korea, L = Seoul, O = EasyMBox, OU = EasyMBox, CN = testdomain.com, emailAddress = boxkeeper@easymbox.com
D:\xampp\apache\.rnd을() 찾을 수 없습니다.
        1개 파일을 이동했습니다.
        1개 파일을 이동했습니다.

-----
Das Zertifikat wurde erstellt.
The certificate was provided.

계속하려면 아무 키나 누르십시오 . . .

위 내용과 같이 writing RSA key … 라는 메시지가 나와야 합니다.
그렇지 않고 ‘Could not read private key from privkey.pem’ 등의 메시지가 나오면 잘못된 것이니 다시 진행하기 바랍니다.


3-4. SSL 인증서 설치

이제 생성한 SSL 인증서를 자신의 로컬 PC에 설치합니다.
설치를 위해 인증서가 위치해 있는 곳으로 이동합니다.

인증서 위치는 {xampp 설치 폴더}\apache\conf\ssl.crt입니다.

D:\xampp\apache> cd .\conf\ssl.crt\
D:\xampp\apache\conf\ssl.crt> ls


    디렉터리: D:\xampp\apache\conf\ssl.crt


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----      2025-05-21   오후 5:48           1976 server.crt


D:\xampp\apache\conf\ssl.crt>

필자의 xampp 설치 폴더는 D:\xampp 이므로 D:\xampp\apache\conf\ssl.crt에 인증서 server.crt가 생성되어 있습니다.

인증서 설치를 위해 server.crt를 실행합니다.

D:\xampp\apache\conf\ssl.crt> .\server.crt

아래 화면과 같이 ‘인증서’ 창이 나타납니다.

XAMPP 설치 후 SSL 인증서 설치하기

발급 대상/발급자가 인증서 생성시 입력한 Common Name (e.g. server FQDN or YOUR name) []: testdomain.com 정보가 표시되고, 5년으로 설정한 유효 기간을 확인할 수 있습니다.

[인증서 설치] 버튼을 클릭합니다.
‘인증서 가져오기 마법사’ 창이 실행되는 것을 확인할 수 있습니다.

XAMPP 설치 후 SSL 인증서 설치하기

‘로컬 컴퓨터’를 저장소 위치로 선택합니다.
[다음] 버튼을 클릭합니다.

‘사용자 계정 컨트롤’이 실행되며, [예]를 클릭합니다.

XAMPP 설치 후 SSL 인증서 설치하기

‘모든 인증서를 다음 저장소에 저장’을 선택합니다.
[찾아보기(R)…] 버튼을 클릭합니다.
‘인증서 저장소 선택’ 창에서 ‘신뢰할 수 있는 루트 인증 기관’을 클릭합니다.
[확인] 버튼을 클릭합니다.

XAMPP 설치 후 SSL 인증서 설치하기

인증서 저장소: 항목에 ‘신뢰할 수 있는 루트 인증 기관’이 입력된 것을 확인하고 [다음] 버튼을 클릭합니다.

XAMPP 설치 후 SSL 인증서 설치하기

‘[마침]을 클릭하면 인증서를 가져옵니다.’라는 메시지 창을 확인하고, [마침] 버튼을 클릭합니다.
‘가져오기를 완료했습니다.’ 라는 메시지 창이 확인되면 설치가 정상적으로 되었습니다. [확인] 버튼을 클릭합니다.

XAMPP 설치 후 SSL 인증서 설치하기

[확인] 버튼을 클릭하고 마칩니다.

다시 server.crt 를 실행해 보면 아래 화면과 같이 ‘인증서 정보’가 표시되며 설치 전과 달라진 것을 확인할 수 있습니다.

XAMPP 설치 후 SSL 인증서 설치 확인
SSL 인증서 설치 후 화면

4. HTTPS 접속 확인

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

SSL 인증서 설치 후 Apache 재시작

실행 중이던 Apache를 [Stop] 버튼을 클릭해 중지합니다.
잠시 뒤, [Start] 버튼으로 변경되면 클릭해 다시 시작합니다.

실행 중인 브라우저를 모두 종료 후, 다시 브라우저를 실행하고 https://localhost로 접속합니다.

SSL 인증서 설치 후 브라우저 접속 확인

위 화면과 같이 정상적으로 잘 동작하는 것이 확인됩니다.

❗참고 :
앞서 testdomain.com 도메인도 추가했는데, 이 도메인으로도 로컬 호스트 설정이 잘 되었는지 확인해 보기 위해서는 윈도우의 hosts 파일에 127.0.0.1 testdomain.com 을 추가해 저장 후 https://testdomain.com으로 접속해 확인하면 동일하게 잘 동작하는 것을 알 수 있습니다.