-
Apache서버에 OPENSSL인증서를 적용하여 HTTPS 환경 구성SERVER 2021. 2. 14. 17:05
2021/02/11 - [SERVER] - XAMPP를 이용한 PHP 로컬 개발환경 구축
XAMPP 를 이용한 PHP 로컬 개발환경 구축
1. XAMPP 란? XAMPP는 apachefriends.org에서 제공하는 오픈소스 패키지로 Apache / MariaDB / PHP / Perl을 하나의 패키지로 제공하며 WINDOWS, LINUX, MAC OS 총 3가지의 OS를 크로스로 지원중입니다. XAMPP를..
don-t-orz.tistory.com
1. OPENSSL 이란?
OPENSSL은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈소스로,
C언어로 작성되어있는 라이프러리에 기본적인 암호화 기능 및 여러 유틸리티 함수들이 구현되어있습니다.
쉽게 요약하면 웹서버와 클라이언트(브라우저) 간 통신 시 암호화 역할을 해주는 보안 라이브러리입니다.
2. OPENSSL 다운로드
OPENSSL은 openssl.org와 sourceforge.net에서 다운로드가 가능합니다.
다운로드 페이지
openssl.org에서 다운로드 : www.openssl.org/source/
/source/index.html
The master sources are maintained in our git repository, which is accessible over the network and cloned on GitHub, at https://github.com/openssl/openssl. Bugs and pull patches (issues and pull requests) should be filed on the GitHub repo. Please familiari
www.openssl.org
sourceforge.net에서 다운로드 : sourceforge.net/projects/openssl/
OpenSSL
Download OpenSSL for free. This project offers OpenSSL for Windows (static as well as shared). It supports: FIPS Object Module 1.2 and CAPI engine.
sourceforge.net
3. OPENSSL 설치 및 실행
다운로드한 OPENSSL 파일을 압축 해제하여 나온 OpenSSL 폴더를 C:\ 하위로 옮겨준다.
(위치는 꼭 C:\ 일 필요는 없으나 추후 환경변수 설정 시 디렉터리를 찾기 편하게 하기 위함)이동이 완료된 OpenSSL 폴더 내 bin 폴더를 실행, 폴더 내의 openssl.exe 파일을 실행하여
콘솔 창을 열어준다.
C:\ 하위로 이동한 OpenSSL 폴더의 bind 폴더 내용, openssl.cnf 는 환경설정파일, openssl.exe는 콘솔 실행 파일 입니다. openssl.exe를 실행한 모습, openssl.cnf의 위치를 찾을수 없다는 에러가 발생중인 화면입니다. openssl.exe를 바로 실행하면
WARNING: can't open config file: C:/OpenSSL/openssl.cnf
에러가 발생할 수 있는데
해당 에러는 openssl.cnf의 위치를 찾을 수 없다는 에러로
별도의 환경변수가 선언되어 있지 않다면 기본 경로인
C:\OpenSSL/openssl.cnf 위치를 참조하여 환경설정 파일을 찾도록 되어있습니다.
해당 에러를 수정하기 위해서는 2가지 방법이 존재하며
첫 번째 방법은 bin 폴더 내의 openssl.cnf 파일을 위 기본 경로로 복사하는 방법,
두 번째 방법은 windows 환경변수 중 OPENSSL_CONF을 추가해주는 방법이 있습니다.
추후 PHP에서 OPENSSL 관련 기능 및 함수들을 사용할 때에도 해당 openssl.cnf 파일을 사용하기 때문에
windows 환경변수를 추가해주는 방법을 권장합니다.
환경변수 설정 시 변수 이름은 OPENSSL_CONF, 변수 값은 openssl.cnf 파일의 위치를 지정해 줘야 하며
C:\OpenSSL 디텍터리에 설치가 되었다고 가정 시 C:\OpenSSL\bin\oenssl.cnf로 파일 위치까지 지정해 줘야 합니다.
내컴퓨터 우클릭 -> 속성 -> 고급 시스템 설정 -> 환경변수 -> 새로만들기 -> OPENSSL_CONF 변수 추가 및 openssl.cnf 파일경로 지정 환경변수 적용후 에러 메시지 출력이 사라진 모습 4. OPENSSL을 통한 인증서 발급
실행된 openssl.exe 콘솔창에 아래 명령어를 통한 인증서 발급을 진행한다
# key 파일 생성 OpenSSL> genrsa -out server.key 2048 # key 파일을 이용한 csr 파일 생성 (인증서 세부 정보는 상황에 맞게 입력하거나 엔터를 눌러 생략가능) OpenSSL> req -new -key server.key -out server.csr # csr 파일, key 파일을 이용한 crt 파일 생성 (3650 은 인증서 유효 기간설정으로 일단위 설정) OpenSSL> req -new -x509 -days 3650 -in server.csr -key server.key -out server.crt
인증서 발급 화면 생성된 인증서 파일, openssl.exe와 동일한 경로에 생성된다. 5. Apache 서버에 SSL 인증서 적용
Apache 설정 파일 httpd.conf 에서 직접 인증서 경로를 지정하거나,
httpd-ssl.conf 파일로 ssl 설정 파일을 별도 분리하여 ssl을 적용 가능합니다.
Apache 설치 경로 기준 conf/httpd.conf 설정파일내 include conf/extra/httpd-ssl.conf 설정 확인
해당 설정이 없다면 httpd.conf 에서 직접 추가하여도 무관하고,
해당 설정이 되어있다면 Apache 설치 경로 기준 conf/extra/httpd-ssl.conf 설정 파일을 확인하여
인증서 적용경로 수정을 진행합니다.
httpd-ssl.conf 설정 파일 내. ctr 경로 확인 및 수정
# 인증서 파일 경로 확인, 발급한 인증서 파일을 해당 경로로 이동 시키거나, 인증서가 있는 경로로 해당 경로 수정 SSLCertificateFile "conf/ssl.crt/server.crt" # 개인키 파일 경로 확인, 발급한 개인키 파일을 해당 경로로 이동 시키거나, 개인키가 있는 경로로 해당 경로 수정 SSLCertificateKeyFile "conf/ssl.key/server.key"
이후 https 프로토콜을 이용한 localhost 접속 테스트 및 인증서 정보를 확인하여
인증서 정상 적용 여부를 확인한다.
'SERVER' 카테고리의 다른 글
XAMPP 를 이용한 PHP 로컬 개발환경 구축 (0) 2021.02.11