7 10 2014
웹사이트에 SSL 보안 적용하기 1. 인증서 발급받기
사실 전부터 블로그에 SSL을 적용해 보고는 싶었는데, 이런저런 이유로 미뤄왔었다. 뭐 대단한 이유가 있던건 아니고, 그냥 귀차니즘 (…) 사실 관련 자료는 이미 다 구해놨었다.
그러다가 오늘 드디어 큰맘먹고, 인증서 발급받고 SSL 보안을 적용했다. 처음 해보는 것이라 그런지 험난하고 힘들었는데, 그 과정을 기록해두려고 한다.
제법 긴 시간동안 SSL 적용하는 작업에 매달려 있었기 때문에 글도 길 것으로 생각되는데, 그래서 글을 두개로 나누려고 한다. 인증서를 발급받는 부분과 발급받은 인증서를 웹서버에 적용하는 부분이다.
이 문서는 SSL이나 https, 인증서 등에 대한 기반 지식이 없는 상태에서, 웹사이트에 인증서를 등록하고 https를 활성화하는 부분만 다뤘다. 추후 관련 지식을 더 익히게 되면 이 문서를 좀 더 수정해야겠다.
인증서는 VeriSign과 같은 CA에서 발급받을 수 있으며, 일정 금액을 지불해야 한다. 예를 들어서 VeriSign의 경우 2014년 10월 5일 기준으로 연간 399$를 지불해야 한다. 다행히 StartSSL에서 Class 1의 인증서를 무료로 발급받을 수 있다.
인증서 발급은 아래와 같은 순서로 진행했다. 다만, Firefox의 버그인지 뭔지 몰라도 중간에 인증 자체가 튕겨버리고 더이상 인증서로 로그인이 안되는 사태가 발생했다. 오류 내용은 ssl_error_unknown_ca_alert. 검색해보니 Firefox 포럼 내에서도 비슷한 이야기가 있는 것 같다. 이럴 경우 StartSSL의 FAQ 페이지에서는 인증서를 일단 백업받은 뒤 다른 컴퓨터나 다른 브라우저에서 다시 로그인해보고, 끝내 안될 경우 새로운 이메일로 다시 가입해서 새로 인증서를 발급받으라고 안내하고 있다 (…) 내 경우, Chrome으로 다시 접속해서 새로운 이메일로 재가입 후 새로 인증서를 발급받았다. 다만, 그래도 안될 경우에는 걍 인증서를 백업한 다음 VMware 등 다른 컴퓨터의 웹브라우저에 인증서를 심어놓고 로그인해보면 십중팔구 로그인이 된다.
1. StartSSL 사이트에 접속한다. URL은 http://www.startssl.com 이다. 접속하였으면 좌측 메뉴에서 Control Panel을 클릭한다.
2. 아래와 같은 화면이 나타나면 Sign-up을 클릭한다. 생활코딩 강좌에 따르면 Express Lane을 클릭하면 원클릭으로 가입 후 웹사이트 인증과 인증서 발급을 마칠 수 있다고 하는 것 같은데, 해보진 않았다.
3. 개인정보 입력란이 표시되면 개인정보를 사실대로 입력한다. 만약 나중에라도 허위 정보를 입력한 것이 알려지면 가입을 거절당할 수 있으며, 특히 이메일로 인증을 받기 때문에 실제로 사용하는 이메일 주소를 넣어야 한다. 영문 주소는 네이버에서 영어주소 로 검색하면 영문주소 변환기가 나타나니 그걸로 변환하면 되겠다. 전화번호는 +82가 표시된 상태에서, 자신의 핸드폰 번호 중 맨 처음의 0을 제외한 나머지 번호를 입력하면 된다. 예를 들어서 01012345678일 경우 +821012345678을 입력한다.
4. 아래와 같은 화면이 나타난다.
이 상태에서 잠시 기다리면 인증메일이 온다.
인증메일에서 인증코드를 찾아서 입력란에 입력 후 Continue를 누른다.
5. 인증이 되었다면 아래와 같은 화면이 나타난다. 이 화면에서 Continue를 누르면 로그인용 인증서를 발급받고, 이후 Install을 누르면 자동으로 인증서를 웹브라우저에 저장하게 된다. 따라서 이후에는 인증서를 발급받은 PC의 해당 브라우저에서만 로그인이 가능하다.
여기서 발급받은 인증서를 잃어버리면 나중에 StartSSL에 로그인할 수 없으므로, 바로 백업해 두는 것이 좋다. 또한 백업해두고 다른 브라우저에 인증서를 가져오기함으로써 타 브라우저에서도 로그인이 가능해진다. 백업은 아래 메뉴에서 진행할 수 있다.
- Internet Explorer: 인터넷 옵션 > 내용 > 인증서 > 개인 > 인증서 선택 후 내보내기
- Firefox: 도구 > 설정 > 고급 > 인증서 > 인증서 보기 > 개인 인증서 > 인증서 선택 후 백업
- Chrome: 설정 > 고급 설정 표시 > 인증서 관리 > 개인 > 인증서 선택 후 내보내기
여담이지만, 윈도우에서 크롬 웹브라우저로 진행할 경우 인증서를 발급받으면 인터넷 익스플로러에서도 바로 사용이 가능했다. 크롬하고 인터넷 익스플로러의 인증서 저장 경로가 동일한 것 같다.
6. Finish 등은 알아서 눌렀다고 가정하고(…) 이후 Control Panel 화면이 나타난다.
만약 Control Panel이 나타나지 않았다면 좌측 메뉴에서 Control Panel을 클릭한 뒤, Authenticate를 클릭하면 인증서 선택 화면이 뜨므로, 방금 발급받은 인증서를 선택하면 인증서를 통해 바로 로그인된다.
인증서를 발급받기 위해서는 먼저 도메인이 유효하다는 인증을 받아야 한다. 상단의 Validations Wizard 탭을 클릭 후 Type을 Domain Name Validation 선택 후 Continue를 클릭한다.
7. 도메인 입력 화면이 나타나면 URL을 올바르게 입력한다.
여기서는 두가지를 유의해야 한다.
- 서브 도메인이 아닌 기본 도메인을 입력해야 한다는 점이다. 즉, blog.ayukawa.kr 이 아닌, ayukawa.kr 을 입력해아 한다.
- 도메인을 등록할 때 사용했던 이메일로 인증 메일이 온다. 따라서 도메인을 등록할 때 올바른 이메일 주소로 등록했는지 확인해야 한다. 도메인 등록 정보는 KISA Whois에서 조회할 수 있다.
도메인을 입력했다면 이메일 주소가 나오는데, 자신의 이메일 주소를 선택하고 Continue를 클릭한다. 맨 처음에 가입할때와 동일한 인증 화면이 나타나는데, 메일함을 살펴보고 동일한 방법으로 인증한다.
8. 도메인 인증이 끝났다면 웹서버에서 사용할 인증서를 발급받아야 한다. Certificates Wizard 탭으로 이동한 뒤 Web Server SSL/TLS Certificate 선택 후 Continue를 클릭한다.
9. 웹서버에서 사용할 인증서의 개인키를 만든다. 패스워드는 최소 10자에서 최대 32자까지 사용 가능하며, 영어와 숫자만 사용 가능하다. 입력했으면 Continue를 클릭한다.
10. 개인키가 발급되었으면 텍스트를 전체 복사하여 적당한 XXX.key 파일로 저장한 뒤, Continue를 클릭한다.
11. SSL을 적용할 도메인을 선택한다. 위 6~7에서 인증한 도메인이 표시되니, 선택하고 Continue를 클릭한다.
12. 실제로 SSL을 적용할 서브 도메인을 입력한다. 만약 서브도메인을 포함한 도메인 전체에 유효한 인증서를 발급받으려면 Class 2 이상을 구입해야 하며, Class 1에서는 도메인별로 인증서를 별도로 발급받아야 한다.
13. 확인 화면이 표시되었을 때 또다시 Continue를 누르면 인증서를 발급받게 된다. 개인키가 발급되었을 때와 동일하게, 전체 복사 후 적당한 XXX.crt로 저장한다.
14. 여기까지 마쳤으면, 인증서와 비밀키를 모두 발급받았다. 이제 ROOT CA 인증서와 중계자 CA 인증서를 다운로드 받아야 한다. 좌측 상단의 Tool Box > StartCom CA Certificates를 클릭한 후, StartCom Root CA (PEM encoded)와 Class 1 Intermediate Server CA를 다운로드 받는다.
여기까지 준비되었으면 아래와 같은 파일이 준비되었을 것이다.
- XXX.key: 비밀키
- XXX.crt: 인증서
- ca.pem: ROOT CA 인증서
- sub.class1.server.ca.pem: 중계자 CA 인증서
여기까지 진행되었으면 인증서 발급과 인증서를 웹서버에 적용시키기 위한 준비는 끝났다. 다음 문서에서는 윈도우에 설치된 아파치에 https를 적용하기 위해 내가 했던 내용들을 정리해야겠다.
다음 글: 웹사이트에 SSL 보안 적용하기 2. 웹서버에 https 적용하기
PS Vita 펌웨어 3.30으로 업데이트 되었는데 웹사이트에 SSL 보안 적용하기 2. 웹서버에 https 적용하기
발급시 https://www.securesign.kr/ 여기도 참고해 보시면 어떨까 합니다~
COMODO 사의 인증서를 고려하지 않고 바로 StartSSL만을 고려한 것은, COMODO사의 인증서는 유료지만 StartSSL사의 인증서는 개인에게는 무료라는 점 때문입니다.
최근에는 StartSSL처럼 LetsEncrypt라는 곳도 무료로 인증서를 제공한다 하니, 이쪽도 대안이 될 수 있지 않을까 하는 생각이 듭니다.
이제는 모질라, 애플 뿐만이 아니라 구글측에서도 Startcom, WoSign 둘 다(사실 같은 회사) 신뢰할 수 없다고, 차단하기로 결정했으니 글 서두에 적어두심이 좋지 싶습니다.