지난 몇 년간 웹 전체는 선택 사항이던 보안 HTTP 프로토콜(HTTPS)에서, 오늘날에는 SSL 인증서 없이는 웹사이트를 운영할 수 없는 환경으로 완전히 전환되었습니다.
그 이유는 구글이 크롬 브라우저에서 사용자가 HTTPS가 아닌 HTTP로 시작하는 웹사이트 URL을 방문할 때마다 경고 메시지를 표시하기 시작했기 때문입니다.
웹사이트가 웹 보안 표준을 충족하도록 하려면 SSL 인증서를 구매하여 웹사이트에 설치해야 합니다. 이 글에서는 SSL 인증서를 발급받고 설치하는 전 과정을 단계별로 살펴봅니다.
1. 전용 IP 주소 확인하기
SSL 인증서가 정상적으로 작동하려면 웹 서버에 고정된 전용 IP 주소가 필요합니다. 전용 웹 서버를 사용하고 있다면 일반적으로 웹 호스팅 계정에서 이 IP 주소를 확인할 수 있습니다.
호스팅 계정에서 찾을 수 없다면 cPanel 도구의 왼쪽 패널에서도 서버 IP 주소를 확인할 수 있습니다.
이 IP 주소를 반드시 기록해 두세요. 다음 단계에서 새 SSL 인증서를 발급받을 때 필요합니다.
2. 웹 호스트의 SSL 인증서 설치하기
다음 단계는 웹사이트에 사용할 SSL 인증서를 확보하는 것입니다.
요즘은 모든 웹사이트가 SSL을 사용해야 방문자가 사이트를 신뢰할 수 있기 때문에, 많은 웹 호스팅 업체들이 호스팅 패키지에 무료 SSL 인증서를 포함하기 시작했습니다.
해당되는 경우라면 cPanel 메뉴를 살펴보고 잘 알려진 SSL 인증서 제공업체의 브랜드와 일치하는 도구 아이콘을 찾아보세요.
예를 들어, 웹 호스트 Siteground는 고객에게 Let's Encrypt SSL 인증서 무료 구독을 제공합니다.
이 경우라면 운이 좋은 것입니다. SSL 도구 아이콘을 클릭하고 보호하려는 도메인을 선택한 후 해당 사이트에 SSL을 활성화하는 것만으로 손쉽게 설치할 수 있습니다.
설치가 완료되면 웹사이트에 SSL이 적용되어 방문자에게 보안 웹사이트로 표시되기 시작합니다.
cPanel에서 SSL 도구가 보이지 않는다면 웹 호스트에 직접 문의하여 SSL 인증서를 제공하지 않는 것이 맞는지 확인해 보세요.
제공하지 않는다면 직접 구매한 후 아래 단계에 따라 수동으로 설치해야 합니다.
3. 새 SSL 인증서 구매하기
먼저 신뢰할 만한 SSL 인증서 제공업체를 찾아야 합니다. 이 서비스 비용은 비교적 저렴하며 연간 30달러에서 100달러 수준입니다.
현재 세계적으로 평가받는 주요 SSL 인증서 제공업체는 다음과 같습니다.
- Let's Encrypt: 무료로 이용할 수 있지만, 인증서 갱신을 위해 자주 재업로드해야 하는 번거로움이 있습니다.
- Comodo SSL: 가격대는 높지만 다양한 추가 기능을 제공합니다.
- Digicert: 저렴한 기본 SSL부터 대형 웹사이트용 프로 버전까지 폭넓은 선택지를 제공합니다.
- GoDaddy: 웹 도메인 서비스로 유명하며, 웹사이트 인증서도 함께 판매합니다.
- Network Solutions: 소규모 사이트를 위한 저렴한 기본 SSL 인증서와 대규모 조직을 위한 고급 옵션을 모두 제공합니다.
- RapidSSL: Symantec이 운영하는 서비스로, 가장 저렴한 SSL 옵션 중 하나를 제공합니다.
SSL 인증서를 구매하려면 도메인 이름과 앞서 기록해 둔 웹 서버의 전용 IP 주소가 필요합니다.
구매가 완료되면 다음 세 가지 정보를 받게 됩니다.
인증서(CRT): 인증서 제공업체의 서버를 통해 보안 웹사이트의 진위성을 검증하는 파일입니다. 개인 키(KEY): 방문자가 사이트에 접속할 때 인증서 정보를 암호화하고 복호화하는 데 사용되는 '열쇠' 역할을 하며, 방문자의 웹 브라우저와 웹 서버 간 통신을 암호화합니다.
CA 번들(CA Bundle)은 세 번째 요소로, 전체 암호화된 SSL 인증이 정상적으로 작동하도록 하는 모든 중간 인증서를 묶어 놓은 것입니다.
SSL 제공업체로부터 이 세 가지 정보를 모두 받았다면 이제 사이트에 SSL 인증서를 설치할 준비가 된 것입니다.
4. SSL 인증서 설치 방법
웹 호스팅 계정에 로그인한 후 cPanel을 엽니다. 보안(Security) 섹션에서 SSL/TLS 관리자(SSL/TLS Manager)를 선택합니다.
SSL/TLS 관리자 화면에서 하단의 SSL 사이트 관리(Manage SSL sites) 링크를 클릭합니다.
SSL 호스트 관리(Manage SSL Hosts) 창에서 맨 아래로 스크롤하면 SSL 웹사이트 설치(Install an SSL website) 항목이 나타납니다. 이 섹션의 드롭다운 목록에서 SSL 인증서를 적용할 호스트(도메인)를 선택합니다. 그런 다음 인증서(Certificate), 개인 키(Private Key), 인증 기관 번들(CA Bundle)의 각 입력란에 인증서 구매 시 받은 긴 텍스트 값을 그대로 붙여넣습니다.
입력을 마쳤으면 하단의 인증서 설치(Install Certificate) 버튼을 클릭합니다.
이제 해당 도메인에 SSL 인증서가 설치되었으며, 방문자가 도메인 앞에 https를 붙여 접속할 때마다 정상적으로 작동합니다.
5. 방문자가 SSL을 사용하도록 강제하기
이미 사이트를 방문한 적이 있는 방문자들은 여전히 도메인 앞에 http가 붙은 오래된 북마크를 통해 접속할 수 있습니다. 이 경우 방문자들은 크롬에서 웹사이트가 안전하지 않다는 보안 경고를 계속 보게 됩니다.
방문자들이 더 이상 사이트를 신뢰하지 못해 이탈할 수 있으므로, 이 문제는 반드시 해결해야 합니다.
해결 방법은 모든 방문자의 브라우저가 URL을 자동으로 수정하여 항상 https로 접속하도록 강제하는 것입니다.
cPanel의 파일(Files) 섹션에서 파일 관리자(File Manager)를 더블클릭하여 실행합니다. 그런 다음 웹 디렉터리의 루트 폴더로 이동합니다. 이곳에서 .htaccess 파일을 찾을 수 있습니다. 파일을 마우스 오른쪽 버튼으로 클릭하고 드롭다운 메뉴에서 Edit(편집)을 선택합니다.
.htaccess는 방문자가 사이트에 접속할 때 웹 서버의 동작을 제어하는 파일입니다. 방문자의 브라우저가 http 대신 https를 사용하도록 강제하려면 이 파일에 특수 코드를 추가해야 합니다.
편집 모드에서 .htaccess 파일이 열리면, 파일 상단에 다음 코드를 삽입합니다.
# START FORCE HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</IfModule>
# END HTTPS
파일을 닫으면 저장 여부를 묻는 창이 나타납니다. 저장을 확인하면 새 .htaccess 파일이 즉시 활성화되어, 모든 사용자가 HTTPS를 통해 사이트에 접속하도록 강제됩니다.
브라우저를 열고 웹사이트 도메인을 직접 입력해 보세요.
SSL 인증서가 올바르게 작동하고 있다면 크롬 주소창에 자물쇠 아이콘이 표시됩니다. 이는 사이트가 암호화된 HTTPS 프로토콜을 통해 로드되고 있다는 의미입니다.
6. 기타 SSL 고려 사항
웹사이트가 정상적으로 작동하더라도 SSL로 전환하면 일부 기능에 문제가 생길 수 있습니다.
대표적인 예가 전 세계 여러 서버에서 이미지를 제공하는 CDN 서비스를 사용하는 경우입니다. 대형 웹사이트는 방문자가 전 세계 어디에 있든 이미지 로딩 속도를 높이기 위해 CDN을 활용합니다.
그런데 CDN이 여전히 HTTP 프로토콜로 이미지를 제공하고 있다면, 방문자가 HTTPS로 사이트에 접속할 때 모든 이미지가 깨져 보이는 문제가 발생합니다.
이를 해결하려면 CDN 계정에 로그인하여 SSL 설정 메뉴로 이동한 후 새 SSL 항목을 추가해야 합니다. 이때 웹사이트에 사용한 것과 동일한 인증서, 개인 키, CA 번들을 해당 필드에 붙여넣으면 됩니다.
항목을 저장하면 사이트의 모든 이미지가 HTTPS 프로토콜을 통해 로드되어, 모든 방문자에게 정상적으로 표시됩니다.
웹사이트를 SSL 인증서를 사용하도록 업그레이드하면 많은 이점이 있습니다. 가장 중요한 것은 방문자의 컴퓨터와 웹사이트 간의 모든 통신이 암호화되어 해커로부터 보호된다는 점입니다.
또한 웹사이트가 최신 웹 표준을 준수하게 되어, 누구든 사이트를 방문할 때 보안 오류나 경고 메시지를 보지 않게 됩니다. 지금 바로 SSL 인증서를 적용해 방문자에게 안전하고 신뢰할 수 있는 웹사이트를 제공하세요.