Ubuntu/Apache2 환경에서 SSL/HTTPS 접속을 구현하는 방법을 알아보겠습니다.
서버에 인증서 파일 업로드
획득한 4가지 아이템을 FTP나 기타 등등 수단과 방법을 가리지 말고(?) 서버에 업로드 합니다.
('획득한 4가지 아이템이 뭐지?!'하고 머리 위에 물음표가 뜬 분들은 지난번 포스트부터 읽고 오세요..^-^)
OpenSSL 설치
최신판 Ubuntu를 사용하는 경우 OpenSSL이 기본적으로 설치되어 있지만, 혹여 아직 설치가 되어 있지 않다면 이를 설치해 주도록 합니다.
sudo apt-get install openssl
Apache2 SSL 모듈 로드
모듈 로드 명령어를 사용하여 Apache2 SSL 모듈을 로드합니다.
sudo a2enmod ssl
default-ssl 파일 작성
apache2/sites-available/default-ssl 파일을 다음과 같이 작성하고 저장합니다.
(필요시 default-ssl이 아닌 다른 파일명을 사용해도 됩니다.)
<IfModule mod_ssl.c> <VirtualHost *:443> ... # SSL 활성화 및 인증서 정보 SSLEngine on SSLCertificateFile (*.crt 파일의 경로) SSLCertificateKeyFile (*.key 파일의 경로) #SSLCertificateChainFile (Chain 인증서 경로) #SSLCACertificateFile (Root 인증서 경로) ... </VirtualHost> </IfModule>
#2 : SSL/HTTPS 연결을 사용할 포트번호를 지정합니다. 기본값은 443입니다.
#10 ~ 11 : 해당사항이 있는 경우만 입력합니다. (일부 인증기관의 경우 이 두 줄을 추가해야 정상 동작)
default-ssl 사이트를 활성화시킵니다.
sudo a2ensite default-ssl
서버 재부팅 및 접속 확인
Apache2 서버를 재부팅합니다.
sudo service apache2 restart
재부팅과정에서 SSL KEY 파일의 암호를 묻는 콘솔이 뜨는데, 이 때 KEY 파일의 암호를 입력해줍니다.
(기억이 나지 않으면 지난 포스트를 참조하세요!)
모든 과정을 잘 따라 오셨다면, https://(자신의 도메인) 으로 접속했을 때 브라우저 주소창 옆에 다음과 같이 SSL 인증이 정상적으로 되었다는 메시지가 표시됩니다.
TIP: KEY 파일의 암호 삭제하기
생성한 KEY 파일에는 암호가 걸려 있어서 Apache2 부팅 과정중 KEY 파일을 로드하는 시점에 암호를 입력해 주어야 합니다. 한 번만 입력하고 그 이후에는 하지 않아도 된다면 아무 문제가 없겠지만, Apache2를 재부팅 할 때마다 물어보게 됩니다..-_-
이럴 경우 서버의 유지관리에 약간의 문제가 발생할 수도 있는데요.. (서버 컴퓨터를 재부팅하면 그때 암호는 누가 입력해주나?!)
이 문제는 KEY 파일의 암호를 제거함으로써 간단히 해결할 수 있습니다.
※ 단, 이 작업을 수행하기 전에 KEY 파일의 사본을 만들어 두어야 하며(추후 갱신시 필요합니다.-StartSSL의 경우 1년마다 인증서 갱신을 해 주어야만 합니다.), 서버에 업로드한 KEY 파일의 보안이 확보되어야 합니다. (웹 디렉토리 등에 저장하지 않습니다!)
sudo openssl rsa -in (*.key 파일) -out (*.key 파일)
- 참 쉽죠잉??^^