오늘은 드디어 SSL 인증서를 XE, 라이믹스 서버에 적용시키는 방법에 대해 알아보겠습니다. 이번에도 차근차근 따라오신다면 쉽게 SSL 적용을 성공하실 것으로 생각합니다.

(이전 포스팅에서는 무료 인증서 발급, 인증서 자동갱신까지 진행하였으니 해당 부분 진행이 되지 않으셨다면 이전 포스팅을 확인하시면 됩니다.)

 

무료 SSL 인증서 서버 적용 방법

1. /etc/apache2/sites-available/[자신의 Virture Host 설정파일] 변경

따로 Virture Host 파일을 생성하지 않았다면, 기본적으로 000-default.conf 또는 ssl-default.conf 파일을 자신의 도메인 주소로 알아보기 쉽게 복사합니다. 

# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testpark.conf

 

파일 복사가 완료된 후 vi 에디터를 통해 파일 수정을 시도합니다.

# vi /etc/apache2/sites-available/testpark.conf

</VirtualHost>로 끝나는 부분에 위 그림과 같이 <VirtualHost *:443>으로 시작하는 아래 문자열을 삽입합니다.


#아래 내용 모두 복사하여 </VirtualHost> 밑 부분에 넣어주기
# ServerName은 자신의 도메인, ServerAdmin은 장애 발생 시 메일을 받을 주소, 
# Document Root, Directory 부분에는 XE 또는 라이믹스가 설치된 경로를 입력하시면 됩니다.

<VirtualHost *:443>
#main domain
ServerName higag.net

ServerAdmin junseob2020@gmail.com

#document Root
DocumentRoot /var/www/html

#additional setting
<Directory /var/www/html/>
Options FollowSymLinks MultiViews
AllowOverride All
require all granted
</Directory>

# ERROR LOG
ErrorLog ${APACHE_LOG_DIR}/apache_error.log CustomLog ${APACHE_LOG_DIR}/apache_access.log combined

Header always set Strict-Transport-Security "max-age=31536000"

SSLEngine on

#SECURITY OPTIONS
SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECD HE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256 :DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES12 8-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECD HE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES12 8-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS- AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256: AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXP ORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5 -DES-CBC3-SHA

SSLHonorCipherOrder on

# 이전 포스팅에서 생성했던 인증서 경로에 있는 cert, privkey, chain pem 파일 등록
SSLCertificateFile "/etc/letsencrypt/live/[도메인]/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/[도메인]/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/[도메인]/chain.pem"

</VirtualHost>

위와 같이 설정 값을 넣어주고 :wq로 저장 및 빠져나옵니다.

 

2. /etc/apache2/sites-available/[자신의 Virture Host 설정파일] 변경

위 과정을 모두 마쳤다면, a2ensite 명령어로 해당 .conf 설정 파일 내 변경된 설정을 적용합니다. (아까 복사했던 .conf 파일, 여기서는 예시로 testpark.conf 라고 명칭 하겠습니다.)

# a2ensite testpark.conf

 

a2ensite 완료 후 apache를 재기동합니다.

# systemctl restart apache2

 

혹시나 journalctl -xe로 에러 로그를 확인하라는 메시지가 출력될 경우 아래 명령어를 입력 후 재기동을 시도합니다.

# a2enmod ssl
# systemctl restart apache2

 

3. 서버 접속 후 SSL 적용 확인

대망의 SSL 적용 여부를 확인하는 시간입니다. 여러분의 홈페이지에 접속해 봅니다.

아직까지는 홈페이지에 SSL이 적용되지 않은 것을 볼 수 있습니다. XE 라이믹스 상에서도 설정을 해줘야 제대로 동작하는 것이니, 낙담은 금물입니다.
XE 라이믹스 시스템 설정 > 사이트 설정 > 수정 버튼을 클릭하여 모든 사이트에 HTTPS 사용을 항상 사용으로 설정합니다.

 

HTTPS 항상 사용 설정 후 사이트 재접속 시 보안 연결이 사용되고 있다는 메시지를 확인할 수 있습니다.

 

여러분의 서버에 적용된 SSL의 보안 강도(강함의 척도)를 확인하기 위하여 아래 사이트에 접속하여 보안 스캔을 시도해봅시다.

https://ssllabs.com

 

Qualys SSL Labs

Books Bulletproof SSL and TLS is a complete guide to deploying secure servers and web applications. This book, which provides comprehensive coverage of the ever-changing field of SSL/TLS and Web PKI, is intended for IT security professionals, system admini

www.ssllabs.com

 

도메인 주소를 입력 후 스캔 버튼을 클릭하면 몇 분 내로 스캔이 완료됩니다. 제가 설명드린 방법대로 진행 하신다면 자랑스럽게 최상위 등급인 A+ 등급을 받을 수 있습니다.

 

이렇게 해서 사이트의 보안 등급도 챙기고, 구글 검색 상위 노출에 도움이 되는 SSL 적용 방법을 알아보았습니다.

구글의 정책 변경으로 SSL이 적용되지 않은 사이트는 접속이 불가하거나 경고 메시지를 띄우고, 검색 상위에도 노출이 되지 않도록 한다고 하니 필히 SSL을 적용하시길 바라겠습니다.

 

다소 어려울 수 있는 파트였는데 여기까지 해내셨다면 정말 축하드립니다!

 

혹은 아직 해결되지 않았거나 도움이 필요하신 분은 댓글 남겨주시면 도와드리도록 하겠습니다.