ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.