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


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

직접 서명된 인증서를 사용 할 수도 있지만, 이번 글에서는 직접 구매한 Comodo Positivie SSL 인증서를 이용하여 설정해 보도록 하겠습니다.
인증서를 구매하는 방법에 대해서는 다음 글을 참고하시기 바랍니다.

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

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

1. 인증서 파일 확인

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

/etc/ssl/hiseon.me/hiseon_me.key
/etc/ssl/hiseon.me/hiseon_me.crt
/etc/ssl/hiseon.me/hiseon_me.ca-bundle

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 on : 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 : 체인인증서 파일의 위치를 지정합니다.

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
본문 내용 인용시에는 출처를 밝혀 주시기 바랍니다.