SSL인증서를 Apache 서버에 설정하는 방법


SSL인증서를 Apache 서버에 설정하는 방법
Apache HTTPS 설정 구매한 SSL인증서를 Apache 서버에 설정하는 방법을 설명합니다. 아파치 SSL 모듈을 활성화하고 VirtualHost 설정 방법을 설명합니다. 그리고 HTTP HTTPS 리다이렉트 될 수 있도록 함께 설정하도록 하겠습니다.

SSL인증서를 Apache 서버에 설정하는 방법

직접 서명된 인증서를 사용 할 수도 있지만, 이번 글에서는 직접 구매한 Comodo Positivie SSL 인증서 와 Let’s Encrypt 무료 SSL 인증서에 대해 설정 방법에 대해설명 드리도록 하겠습니다.

Comodo Positivie SSL 인증서를 구매하는 방법과 Let’s Encrypt 무료 SSL 인증서 발급 방법에 대해서는 각각 아래의 글을 참고하시기 바랍니다.

Comodo Positive SSL 인증서 발급 구매 방법 절차

Let’s Encrypt 무료 SSL 인증서 발급 방법

운영체제는 Ubuntu 18.04를 기준으로 설명 드리도록 하겠지만, 우분투 16.04에서 함께 테스트되었습니다. 그 외의 우분투 버전에서도 크게 차이는 없을 것입니다.

SSL인증서를 Apache 서버에 설정하는 방법

1. 인증서 파일 확인

서버에서 적용하는데 필요한 인증서 파일은 각각 아래와 같습니다.

Comodo Positivie SSL 인증서

  • SSLCertificateKeyFile /etc/ssl/hiseon.me/hiseon_me.key
  • SSLCertificateFile /etc/ssl/hiseon.me/hiseon_me.crt
  • SSLCACertificateFile /etc/ssl/hiseon.me/hiseon_me.ca-bundle

Let’s Encrypt SSL 인증서

  • SSLCertificateKeyFile /etc/letsencrypt/live/hiseon.me/privkey.pem
  • SSLCertificateFile /etc/letsencrypt/live/hiseon.me/fullchain.pem
  • SSLCACertificateFile /etc/letsencrypt/live/hiseon.me/chain.pem

Let’s Encrypt 에서 발행된 인증서는 fullchain.pem 파일에 SSLCertificateChainFile 내용이 포함되어 있습니다. 따라서 SSLCertificateFile 경로만 fullchain.pem 파일로 지정해 주시면 됩니다.

Comodo Positivie SSL 인증서 설정의 경우 key 파일의 경우 인증서를 구매 할 때 생성한 비밀키(private key) 파일이고, hiseon_me.crt 파일과 hiseon_me.ca-bundle 파일은 인증서를 구매한 뒤에 받은 메일에 첨부된 파일입니다.

2. 설정 파일 생성

다음과 같은 내용의 아파치 설정 파일(/etc/apache2/sites-available/hiseon.me.conf)을 생성합니다.

sites-available 디렉터리는 사이트 설정 파일이 존재하는 디렉터리로, 설정 파일을 직접 사용하지 않고 저장하는 용도입니다. 실제 사용할 경우 /etc/apache2/sites-enabled 위치에서 심볼릭 링크를 걸어서 사용하게 됩니다.

<VirtualHost *:443>
    ServerName  hiseon.me
    DocumentRoot /data/www/hiseon.me

    SSLEngine on
    SSLCertificateKeyFile /etc/ssl/hiseon.me/hiseon_me.key
    SSLCertificateFile /etc/ssl/hiseon.me/hiseon_me.crt
    SSLCACertificateFile /etc/ssl/hiseon.me/hiseon_me.ca-bundle

    <Directory />
        AllowOverride All
        Options All -Indexes
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
	ServerName hiseon.me
	Redirect / https://hiseon.me/
</VirtualHost>

위의 설정 내용은 VirtualHost으로 https (443)와 http (80)프로토콜를 함께 설정하는 내용으로, HTTPS 뿐만 아니라 HTTP의 접속을 함께 허용합니다. 하지만 HTTP으로 접속하게 되면 자동으로 HTTPS으로 이동되게 됩니다.

DocumentRoot 값에 웹 파일들이 존재하는 디렉토리를 지정해 주시고, SSL 설정에서 키파일 위치 등을 지정해 주시면 됩니다. SSL 설정과 관련하여 주요 설정이 의미하는 내용은 아래와 같습니다.

  • SSLEngine : SSL 엔진을 활성화하는 의미로 on 값을 설정합니다.
  • SSLCertificateKeyFile : 비밀키 위치를 지정합니다.
  • SSLCertificateFile : 인증서 파일의 위치를 지정합니다.
  • SSLCACertificateFile : 체인인증서 파일의 위치를 지정합니다.

3. 아파치 모듈 설정

/etc/apache2/sites-enabled 위치에서 아래와 같은 명령어를 실행하여, 심볼릭 링크를 생성합니다.

/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/hiseon.me.conf 
/etc/apache2/sites-enabled$ ls
000-default.conf  hiseon.me.conf
/etc/apache2/sites-enabled$ ls -alh
total 8.0K
drwxr-xr-x 2 root root 4.0K  2월  7 22:36 .
drwxr-xr-x 8 root root 4.0K  1월 30 20:48 ..
lrwxrwxrwx 1 root root   35  9월 10  2016 000-default.conf -> ../sites-available/000-default.conf
lrwxrwxrwx 1 root root   33  2월  7 22:36 hiseon.me.conf -> ../sites-available/hiseon.me.conf

4. 아파치 모듈 설정

아래의 명령을 실행하여, ssl 모듈 및 의존 관계에 있는 관련된 모듈들을 활성화 합니다.

$ sudo a2enmod ssl
$ sudo a2enmod rewrite

5. 서버 재실행

아래의 명령어를 실행하여 아파치 서버를 재실행 합니다.

$ sudo service apache2 restart

6. SSL 연결 테스트

연결 설정이 완료되면, 아래에 도메인 명을 입력하여 SSL 연결이 정상적으로 이뤄지는지 테스트 할 수 있습니다. ssl checker 기능입니다. 연결 과정에서 오류가 발생하면 에러 메세지가 발생할 것입니다.

도메인

SSL 연결 테스트 과정에서 오류가 발생할 경우, 아래의 페이지 내용을 참고해 주시기 바랍니다.

( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)