본문 바로가기
Tip & Tech/Linux

SSL 인증서 무료로 받아 설치하기

by 변기환 2012. 8. 23.

2012년 8월 18일부터 회원가입을 받는 모든 사이트는 SSL 보안을 의무적으로 적용해야 한다. 이를 어길 시 3,000만 원 이하 벌금을 부과한다고 한다.


SSL 보안이란 간단히 말하면 사용자가 웹 브라우저에 입력하는 정보를 암호화해 보내면 서버에서 원래대로 복호화한다는 개념이다.


툭하면 발생하는 개인정보 유출을 막고자 시행하는 모양인데, 개인정보가 유출된 과정만 알면 이 법이 얼마나 뻘짓인지 금방 알 수 있다.


개인정보 유출 대부분은 어리한 서버 관리자가 아이디와 비밀번호를 허술하게 관리했기 때문에 발생했지, 개인이 서버에 보내는 정보를 해석해서 발생한 게 아니란 말이다.


돌대가리 공무원들 뻘짓에 소규모 사이트를 운영하는 사람들만 죽어난다.


SSL 보안 적용은 작은 사이트 같은 경우 몇만 원 큰 사이트 같은 경우 몇십만 원 가까이 추가 비용이 발생한다. 그리고 인증서를 발급하는 회사가 외국 회사기 때문에 SSL 보안 의무화로 어마어마한 돈이 외국으로 빠져나가는 셈이다.


인증서만 가지고 있어도 이를 설치하는데 몇만 원 줘야 한다.


다행히 SSL 보안에 필수인 인증서를 무료로 발급해 주는 사이트가 있다. SSL 보안에 필요한 인증서는 다음과 같다.


1. startssl 에서 1번째로 만든 KEY 파일.

2. startssl 에서 2번째로 발급받은 CRT 파일.

3. 루트인증기관 CA.pem 파일

4. 루트인증기관체인 sub.class1.server.ca.pem 파일


먼저 startssl.com 사이트에 가입한다.


간단한 정보를 입력하면


메일로 인증 코드를 발송한다.


메일로 도착한 인증 코드를 위 난에 입력하면 된다.


메일로 인증코드를 받아 입력하는 과정이 한 번 더 진행된다. 


메일인증을 마쳤으며, 마지막으로 startssl.com 사이트에서 발급하는 인증서를 선택하여 설치한다. 이 과정은 이미 가입을 해버려 캡처를 못했으나, 직접 해 보면 그렇게 어렵지 않다.


인증서 설치를 마쳤으면 "Authenticate"를 선택한다.


좀 전에 발급받는 인증서를 확인하면


무료로 인증서를 발급하는 페이지로 접근할 수 있다.


먼저 SSL 보안을 적용할 도메인 인증을 해야 한다


SSL 보안을 적용할 도메인을 입력하고 나머지 부분을 선택한다.


다음 화면에서 선택한 메일주소로 인증코드를 발송해 주는데, 이 부분이 아주 중요하다.


해당 도메인 정보에 현재 사용중인 메일이 등록되어 있어야 해당 메일을 선택할 수 있다. 만약 사용하지 않은 메일이 등록되어 있다면, 도메인의 메일 정보를 변경해야 한다.


인증코드를 받을 메일을 선택한 후 계속 진행하면 메일로 인증코드를 보내준다.


인증코드를 복사해서 입력하면 도메인 인증이 완료된다.


이제 인증받은 도메인의 SSL 인증서를 받아보자. Web Server SSL/TLS Cartificate를 선택


인증서 비밀번호를 만든다. 비밀번호 10자리를 입력해야 다음으로 진행할 수 있다.


Text area의 코드를 복사하여 XXXX.key로 저장한다.


SSL을 적용할 도메인을 선택하고


도메인의 Alias를 입력한다. 인증서는 도메인마다 발급받아야 한다. 즉 www.autoboy.pe.kr 인증서 따로 mail.autoboy.pe.kr 인증서 따로 각각 받아야 한다. 


www을 입력하면 autoboy.pe.kr www.autoboy.pe.kr 을 동시에 사용할 수 있다.


Text area의 코드를 복사하여 XXXX.crt로 저장한다.


인증서 발급을 마쳤으면, 루트인증기관 ca.pem 파일과 루트인증기관체인 sub.class1.server.ca.pem 파일을 내려받는다.


ToolBox에서 StartCom CA Certificates 항목을 선택한다.


아래 두 개의 파일을 내려받는다.


호스팅을 받는 사용자라면 

key

crt

sub.class1.server.ca.pem

위 파일과 인증서 발급시 입력한 비밀번호를 호스팅 관리자에게 넘겨주면 지가 알아서 설정해준다.


개인 서버를 가지고 있다면 위 파일을 서버의 적당한 경로에 올리고 SSL 설정에서 인증서를 등록한다.


만약 openSSL이 설치되어 있지 않으면 yum install openssl 명령으로 설치한다.

<VirtualHost _default_:443>

   DocumentRoot /home/내아이디/public_html ;내계정 디렉토리

   ServerName 도메인:443

   ServerAdmin 이메일주소

  
   SSLEngine on

   SSLProtocol all -SSLv2

   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM


   SSLCertificateFile /etc/경로/certs/내인증서.crt

   SSLCertificateKeyFile /etc/경로/private/내키.key

   SSLCertificateChainFile /etc/경로/certs/sub.class1.server.ca.pem

   SSLCACertificateFile /etc/경로/certs/ca.pem


  <Files ~ "\.(cgi|html|shtml|phtml|php?\d?)$">

     SSLOptions +StdEnvVars

  </Files>

   SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

   #CustomLog /usr/local/apache/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>



SSL 보안 접속은

https://내도메인:443


https로 접속시 문서내에 "http" 경로가 들어 있으면 경고창이 뜨기 때문에 모든 페이지를 https로 연결할 게 아니라 아이디, 비밀번호를 받아 로그인 처리하는 파일과 같이 꼭 필요한 페이지만 사용하도록 한다.


startssl class1 은 와일드카드 라이센스가 아니기 때문에 하나의 ip로 이루어진 가상 호스트에서는 여러 개  사용 시 각각 포트를 변경해야 한다.


가상 호스팅 환경이라면 아파치 설정에서 SSL로 사용할 포트를 추가로 등록하고

Listen 442


해당 포트에 맞게 설정한다.


인증서를 발급받을 때 비밀번호를 등록했기 때문에 Apache를 시작할 때 마다 비밀번호를 묻는다. 다음과 같이 키 파일을 새로 생성하면 비밀번호 없이 Apache를 시작할 수 있다.


openssl rsa -in 원래파일.key -out 새파일.key


https://도메인:포트로 접속하면 URL 입력난에 자물쇠가 표시되고 인증서를 볼 수 있다. 참고로 이 인증서는 유효기간이 1년이기 때문에 유효 기간이 지나면 다시 발급받아야 한다.

 

이런 뻘짓하지 말고 모든 사이트에 개인정보를 파기하도록 하고, 아이핀처럼 개인정보를 최소화해 국가가 관리하고 개인정보를 필요로 하는 사이트마다 접근할 수 있는 키를 발급해라!!!

댓글