무료로 사용가능한 ssl 을 적용하기 위해 검색해본 결과 www.startssl.com 과 www.cacert.org 라는 곳에서 서비스를 제공해 주었다. 주로 많은 사용자가 사용하고, 참고자료가 많은것이 startssl 인 관계로 startssl을 중심으로 적용방법을 기록하고자 한다.
1. 먼저 startssl.com 에 가입하기위해 우측 상단의 사진과 열쇠가 겹쳐진 이미지를 클릭한다.
- 아래의 화면에서 Sign-up 선택
- 아래의 입력창에 자세하게 정보를 입력한다.(특히 주소를 간략하게 대략 입력할 경우 다시 입력해야하고, 대학교 주소로 등록할 경우에도 등록이 되지 않는다. Email 주소는 인증키가 발송되므로 정확히 입력해야 한다)
- "Continue" 를 선택하게 되면 인증키가 Email로 발송되며, 다음 페이지에서 인증키를 입력하면 된다.
- Private Key 를 생성한다. (Continue 선택)
- Private Key 가 생성되었고, 인증서를 설치하는 과정
- 인증서 설치 완료
- 회원가입 과정이 끝이 나고 다음으로 무료로 인증서를 발급받도록 한다.
2. 무료 SSL 인증서 발급
- 바로 위의 화면에서 "Validations Wizard" 탭을 선택한다.
- Domain Name Validation 을 선택하고 "Continue" 클릭
- SSL 보안을 적용할 도메인을 입력한다
- 인증코드를 발송할 메일 주소를 선택한다. (postmaster@~~~, hostmaster@~~~, webmaster@~~~ 외 마지막 email 주소는 해당 도메인에 등록된 email 주소이다. 사용하지 않는 주소로 잘못 등록된 경우 도메인의 정보를 변경해야만 한다.)
- 위의 과정에서 "Continue" 후 선택한 Email로 받은 인증코드를 입력한다.
- 도메인 인증 완료
3. 다음과정으로 인증 받은 도메인의 SSL인증서를 받는 과정이다.
- Certificate Target 에서 Web Server SSL/TLS Certificate 를 선택 후 "Continue" 클릭
- 인증키 생성을 위한 10자리 이상의 비밀번호를 만든다(잘 기억해야 한다.)
- Private Key 가 생성되었다. 생성된 코드는 복사하여 XXX.key 로 저장한다.
- SSL을 적용할 도메인을 선택한다.
- SSL을 적용한 서브 도메인을 입력한다.(www 를 입력할 경우 startssl.com 과 www.startssl.com 은 같이 사용가능하지만 그외는 개별 인증서를 따로 발급받아야 한다. mail.startssl.com, nas.startssl.com 등등..)
- "Continue"..
- "Continue"..
4. ToolBox,로 이동하여 인증키를 복사하여 파일로 생성한다.
- ToolBox로 이동하여 Retrive Certificate 를 선택한다.
- 인증서의 도메인을 선택한다.
- 인증키값을 복사하여 XXX.crt로 저장한다.
5. Apache 서버에 SSL 적용
위의 과정에서 생성한 XXX.key, XXX,crt 파일을 서버에 저장한다.
Apache 서버의 conf 파일에 SSL 관련 정보를 설정하도록 한다.
<VirtualHost _default_:443>
DocumentRoot "/xxx/html"
ServerName www.xxx.co.kr
ServerAdmin admin@xxx.co.kr
SSLEngine on
SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite SSLv3:+HIGH:+MEDIUM
SSLCertificateFile /usr/local/apache/conf/ssl/XXX.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl/XXX.key
--생략--
<VirtualHost>
설정후 apachectl -t 하여 문법체크 한번 한 후 apachectl restart 하고 브라우저를 통한 https://XXX.co.kr 이 접속되는지 확인한다.
접속되지 않을 경우는 ssl 관련 에러로그를 기록하는 파일을 참고하도록 한다(default : logs/ssl_error_log)
* 서버가 정상적으로 실행되지 않을 경우 에러메세지에 아래와 같이 기록되는 경우가 있다.
[Thu Jan 31 10:15:20 2013] [error] Unable to configure RSA server private key
[Thu Jan 31 10:15:20 2013] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch이 경우는 인증서의 key 와 crt 파일이 일치하지 않아서 생기는 오류이다.
openssl rsa -noout -text -in xxx.key
openssl x509 -noout -text -in xxx.crt
를 각각 실행하면 modulus 부분을 확인하여 일치하는지 확인한다.