Apache

Apache2 서버에 SSL/HTTPS 설치하기 (StartSSL) - 1

Posted 2013. 01. 13 Updated 2017. 06. 02 Views 18099 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

2009년에 개정된 정보통신법으로 인해 단 한가지 항목(ex. 이메일 주소)일지라도 개인정보를 받는 사이트는 HTTPS/SSL(Secure Socket Layer) 사용이 의무화 되었습니다.

자체 서버에서 openssl등을 이용, 인증서를 발급하여 사용할 수도 있습니다.

하지만 이 경우 https 접속 시도시 브라우저에 "신뢰할 수 없는 인증서입니다."라는 메시지가 떠서 자칫 사이트를 방문한 누리꾼으로 하여금 이상한 사이트라는 오해를 불러일으킬 수도 있습니다. (그 메시지는 단지 인증서의 발급 기관이 공인 기관이 아니라는 의미일 뿐입니다)

결국 만족할 만 한  SSL 인증 서비스를 받기 위해서는 Verisign등의 상용 서비스를 이용할 수밖에 없는데,  이 경우 인증서 발급 및 갱신에 지속적으로 비용이 들어갑니다.

대기업이나 수익을 목적으로 하는 사이트라면 그 정도 인증료는 감수해도 되겠지만, 개인 블로그와 같이 비영리로 운영하면서 인증료까지 내야 한다면 부담이 될 것입니다.

다행이도 공인 인증 기관 중에 무료로 SSL 인증서 발급 서비스를 해 주는 곳이 있습니다. 한 가지 아쉬운 점이 있다면 국내가 아닌 해외 업체라는 점이고, 또 아쉬움을 덧붙이자면 하나의 서브 도메인에 대한 인증만 무료라는 점입다. 하지만 무료인 마당에 이정도 불편함(?)은 감수하고도 남을 것입니다.

이 글에서는 StartSSL을 이용하여 Apache2 웹서버에 SSL 인증서를 설치하는 방법을 다루도록 하겠습니다.


SSL 인증서를 설치하려면 다음과 같이 네 개의 파일이 필요합니다.

  • 서비스 제공업체의 KEY 파일 (*.key)
  • 서비스 제공업체의 CRT 파일 (*.crt)
  • 루트 인증기관의 Root Chain 파일 (*.pem)
  • 루트 인증기관의 Sub Intermediate 파일 (*.pem)

이제 부터 이 4가지 파일을 발급받는 방법에 대하여 설명하도록 하겠습니다. 이 파일들은 이곳저곳에 흩어져 있는 것이 아니라, 다행이도 startssl.com 사이트에서 일괄적으로 발급받을 수 있습니다.


StartSSL 회원가입

https://startssl.com 에 접속해서 Sign Up 버튼을 눌러 회원가입을 진행합니다.

모든 정보는 정확하게 입력해야 하며, 특히 주소 입력시 상세 주소까지 입력하지 않으면 인증이 되지 않습니다.
(참조 : 도로명 주소 안내 홈페이지 http://www.juso.go.kr )

가입을 완료하면 두 차례에 걸쳐 이메일 주소 인증을 진행합니다.

첫 번째 인증 이후 두 번째 인증 이메일이 도착할 때까지 최장 6시간까지 시간이 소요될 수도 있으므로 약간의 인내심을 갖고 기다리도록 합니다.

두 번째 이메일 인증
▲ 두 번째 이메일 인증 직후 화면


StartSSL 인증서 설치

두 번째 이메일 인증이 완료되면 StartSSL 인증서를 설치하고 저장하는 과정을 거치게 됩니다.

이 과정에서 발급받는 인증서는 개인 서버의 SSL 인증 용도가 아니라, StartSSL 사이트에 로그인하기 위한 용도로 사용되는 인증서입니다. 혼동하지 않도록 합니다!^^

StartSSL 인증서 설치
StartSSL 인증서 설치
▲ StartSSL 인증서 설치 과정

이 과정을 완료하면 이제 이 작업을 수행한 브라우저에 한해서 인증이 완료된 것입니다. 추후 StartSSL 관련 작업을 할 때는 반드시 해당 브라우저를 통해 접속해야만 정상적으로 인증이 이루어집니다.

간단히 말하면, 로그인 절차를 인증서로 대체했다고 할 수 있습니다. StartSSL에 로그인하기 위해 아이디나 비밀번호가 필요한 것이 아니라, 해당 인증서가 설치된 브라우저로 단지 접속하기만 하면 인증이 자동으로 이루어집니다.

컴퓨터를 포맷하거나, 기타 문제로 인증서가 유실될 경우에 대비하여 다른 곳에 저장해 두도록 합니다. 브라우저마다 인증서를 내보내는 과정을 조금씩 다르지만, 대개 주소창 앞의 자물쇠 모양 아이콘을 클릭하면 됩니다.

StartSSL 인증서 저장 StartSSL 인증서 저장
▲ 인증서의 사본을 저장하는 과정(Firefox의 경우)


Domain Name Validation

Domain Name Validation은 SSL 인증을 사용할 도메인을 StartSSL에 등록하는 과정입니다. [Continue] 버튼을 누르고 필요한 정보를 입력하면 쉽게 진행할 수 있습니다.

4-1 Domain Name Validation
▲ Validations Wizard 탭에서 "Domain Name Validation" 선택

4-2 Domain Name Validation
▲ SSL 인증을 사용할 도메인을 입력합니다.

4-3 Domain Name Validation
▲ 해당 도메인의 관리자로 등록된 이메일로 인증을 시도하는데... 제 이메일이 없네요.^^

도메인에 블라인드 서비스를 사용중이라면 실 관리자의 이메일 주소가 나타나지 않을 수도 있습니다. 가입한 도메인 사이트에 들어가서 일시적으로 블라인드 서비스를 해제해야 합니다.

4-4 Blind Service Pause
▲ 블라인드 서비스를 사용중인 경우 일시정지 시켜야 합니다.

 4-5 Domain Name Validation
▲ 이제 이메일 주소가 표시되었습니다.

인증에 사용 할 이메일 주소를 선택하고 [Continue] 버튼을 누르면 해당 이메일로 인증키가 전달됩니다. 인증키를 Ctrl+C해서 입력 폼에 Ctrl+V를 하면 도메인 인증과정이 완료됩니다.


Certificate Wizard를 통해 KEY 및 CRT 파일 얻기

이제 도메인 인증이 끝났으므로, 본격 SSL 인증을 시작해보도록 하겠습니다.

5-1 Certificates Wizard
▲ Certificates Wizard 탭에서 'Web Server SSL/TLS Certificate'를 선택하고 [Continue]를 클릭합니다.

5-2 Certificates Wizard
▲ Key Password(KEY 파일에 저장되는 암호)를 입력합니다. 영문 숫자 조합으로, 최소 10자리 이상이어야 합니다. 여기서 입력하는 비밀번호는 서버 가동시 매번 입력해야 하므로 잘 기억해 두어야 합니다.

5-3 Certificates Wizard
▲ KEY 파일의 내용이 생성되었습니다. 텍스트박스 안의 내용을 복사해서 *.key 파일로 저장합니다.

5-4 Certificates Wizard
▲ 계속해서 SSL 인증을 사용할 서버의 서브도메인을 입력합니다.
(앞서 말했듯이, 무료 서비스에서는 하나의 서브도메인에 대한 인증만 제공합니다.)

5-5 Certificates Wizard
▲ 정보 확인 화면. 무료 SSL 서비스는 루트 도메인과 하나의 서브 도메인에만 제공됩니다.

5-6 Certificates Wizard
▲ CRT 파일의 내용이 생성되었습니다. 텍스트박스 안의 내용을 복사해서 *.crt 파일로 저장합니다.


CA Certificate 인증파일 (*.pem) 얻기

Root Chain 인증서는 SSL 인증 서비스 제공기관의 고유 인증서 파일이므로 별도의 정보를 입력할 필요 없이 단지 다운받기만 하면 됩니다.

6 CA Certificate
▲ StartCom CA Certificates 메뉴에서 네모 친 두 개의 파일을 다운받습니다.


Items.png

이제 SSL 서버 구축에 필요한 네 가지 아이템을 모두 모았습니다. 다음 글에서 이 파일들을 이용하여 Apache2 서버에서 SSL/HTTPS접속을 구현하는 방법을 알아보도록 하겠습니다.