윈도우를 사용하는 컴퓨터에 개발 환경을 빠르게 구축해 간단히 작업을 해보고 싶은 경우에 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 설치 후 컨트롤 패널을 실행해 보면 아래와 같다.
제대로 동작하는지 바로 확인해 보기 위해 Apache를 실행해 본다.
위 화면과 같이 Apache 옆의 [Start] 버튼을 클릭하자.
그러면 아래 화면과 같이 Apache가 초록색 배경으로 표시되고, PID(s)와 Port(s) 항목에 값이 나온다.
Port(s)에 80, 443이 표시되는 것으로 보아 기본적으로 HTTP와 HTTPS가 사용되는 것을 알 수 있다.
그러면 브라우저에서 http://localhost로 접속해 보면 아래 화면과 같이 http://localhost/dashboard/로 리다이렉션까지 되면서 페이지를 보여주는 것을 알 수 있다. 정상적으로 설치가 잘 되었다.
그러면, https://localhost로 접속해 보면 아래와 같은 화면을 보게 된다.
주소 표시줄에 있는 "주의 요함"을 클릭해 보면 아래와 같이
"⚠️이 사이트는 보안 연결(HTTPS)이 사용되지 않았습니다. "라는 메시지를 확인할 수 있다.
이렇듯 HTTPS(보안 연결)를 사용하기 위해서는 localhost(로컬 호스트)에 인증서를 설치해야 한다.
2. SSL 인증서 만들기
이제 로컬 호스트에 보안 연결(HTTPS)을 사용하기 위해 가장 먼저 해야 할 일은 SSL 인증서를 만드는 것이다.
1) makecert.bat 수정
XAMPP에는 인증서 생성을 간편하게 할 수 있게 일괄 스크립트를 제공하고 있다.
XAMPP 설치 폴더가 기본적으로 C:\xampp라는 가정하에 얘기하면 아래 경로로 가보자.
C:\xampp\apache
해당 폴더로 가면 makecert.bat 파일이 있을 것이다.
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를 실행하자.
계속 뭘 입력하라고 나올 텐데, 다른 건 입력하지 않아도 무방하지만 위 화면에 노란색으로 표시한 부분을 주의 깊게 보자.
Common Name 항목에서 앞서 v3.ext 파일에 설정한 도메인(예: wishlan.com)을 입력하자.
4) SSL 인증서 설치
이제 생성한 SSL 인증서를 설치한다.
설치는 생성된 인증서를 실행하는 것으로 시작한다.
생성된 인증서 위치는 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가 실행 중이라는 것을 알 수 있고, 재시작은 [Stop] 버튼을 클릭해 중지한 다음 다시 [Start] 버튼으로 바뀌면 클릭해 시작하면 된다.
https://localhost로 접속해 보면 아래와 같이 잘 동작하는 것을 알 수 있다.
참고로 앞서 wishlan.com 도메인도 추가했는데, 이 도메인으로도 로컬 호스트 설정이 잘 되었는지 확인해 보기 위해서는 윈도우의 hosts 파일에 127.0.0.1 wishlan.com 을 추가해 저장 후 https://wishlan.com으로 접속해 확인해 보면 된다.
아래와 같이 잘 되는 것을 알 수 있다.
이렇게 구성할 수 있으면 자신의 PC에서 간단하게 개발하고 테스트해보는 환경을 비교적 쉽게 구성할 수 있다.
- 끝 -
상기 상품 배너는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'코딩해보니 > PHP' 카테고리의 다른 글
XAMPP 기반에 무들(Moodle) 설치하기 - Apache, PHP, MySQL 설정 등 (0) | 2025.01.22 |
---|---|
무료 오픈소스 학습 관리 시스템(LMS) - moodle (무들) 설치하기 (2) | 2024.12.31 |
라라곤(Laragon)으로 윈도우(Windows)에서 PHP 개발 환경 구성하기(Laravel 가능) (0) | 2024.10.26 |
윈도우(Windows)에서 PHP 개발 환경 구성하는 방법 - XAMPP, AMPPS, EasyPHP, Homestead (0) | 2024.07.12 |
PHP와 MySQL(MariaDB) 연동- 윈도우(Windows) 환경 (1) | 2024.07.12 |
댓글