https와 ssl 인증서가 무엇인지, 설치하는법

SSL(Secure Sockets Layer)과 HTTPS(HyperText Transfer Protocol Secure)는 웹사이트의 보안을 강화하는 데 핵심적인 기술이에요. 이들이 왜 중요한지, 그리고 SSL 인증서를 무료로 얻어 HTTPS 설정을 어떻게 하는지 알고 계세요? 이번 블로그에서 제가 자세히 알려 드리겠습니다.

SSL이란 무엇인가요?

SSL은 인터넷 상에서 데이터를 암호화하여 전송하는 표준 기술이에요. 이 기술은 웹서버와 브라우저 사이의 정보를 암호화하여, 데이터가 네트워크를 통해 전송될 때 도청, 데이터 변조, 메시지 위조 등의 보안 위협으로부터 보호해줍니다. SSL은 이제 TLS(Transport Layer Security)로 발전했지만, 여전히 SSL이라는 용어가 널리 사용되고 있어요.

 

HTTPS란 무엇이고 왜 필요한가요?

HTTPS는 SSL/TLS 프로토콜을 사용하여 HTTP 통신을 암호화하는 방식이에요. 웹사이트 주소가 ‘https://’로 시작하는 경우, 이 사이트는 HTTPS를 사용하여 데이터를 안전하게 전송하고 있다는 뜻이죠. HTTPS는 사용자 정보, 결제 데이터, 기밀 문서 등 중요한 데이터를 온라인으로 전송할 때 필수적으로 요구됩니다.

데이터 보호: 데이터가 암호화되어 전송되므로, 중간에서 누군가 정보를 가로채더라도 내용을 해석할 수 없어요.
신뢰성: 웹사이트가 SSL 인증서를 사용함으로써, 방문자는 사이트가 신뢰할 수 있는 기관에 의해 검증되었다는 것을 알 수 있어요.
검색 엔진 최적화: Google을 포함한 많은 검색 엔진들이 HTTPS를 사용하는 사이트에 더 높은 순위를 부여합니다.
SSL 인증서 무료로 받아서 HTTPS 설정하는 법
무료 SSL 인증서를 통해 HTTPS를 설정하는 가장 대표적인 방법은 Let’s Encrypt를 사용하는 것이에요. Let’s Encrypt는 사용자에게 무료로 SSL 인증서를 제공하는 비영리 기관이며, Certbot이라는 도구를 통해 설치와 갱신 과정을 자동화할 수 있어요.

 

Let’s Encrypt와 Certbot을 이용한 HTTPS 설정 방법

Certbot 설치하기: Certbot 웹사이트에서 제공하는 지침에 따라, 서버 운영 체제에 맞는 Certbot을 설치하세요.
도메인 인증하기: Certbot을 실행하여, 소유한 도메인의 인증 절차를 완료하세요. 이 과정에서 Certbot은 Let’s Encrypt에 자동으로 인증서를 요청하고, 도메인 소유권을 검증하기 위한 파일을 웹서버에 배치합니다.
SSL 인증서 자동 갱신 설정하기: Certbot은 인증서 갱신을 자동화할 수 있도록 설정하는 옵션을 제공합니다. 대부분의 경우, crontab을 사용하여 자동 갱신 스크립트를 설정할 수 있어요.

 

Apache에 SSL 인증서 설치하기

Apache를 이용해 SSL 인증서를 설치하고 HTTPS를 설정하는 과정은 아래와 같습니다. 여기서는 Let’s Encrypt를 통해 무료 SSL 인증서를 받는 방법을 포함해 설명할게요. 이 과정은 Ubuntu 시스템을 기준으로 설명하지만, 다른 리눅스 배포판에서도 유사하게 적용됩니다.

1. Certbot 설치

Let’s Encrypt의 인증서를 쉽게 설치하고 자동으로 갱신할 수 있도록 해주는 Certbot을 사용합니다. 우선, Certbot과 Apache 플러그인을 설치합니다.

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-apache

2. 도메인에 SSL 인증서 발급 받기

Certbot을 사용하여 SSL 인증서를 발급받습니다. 이 과정에서는 도메인 소유권을 검증하고, Apache 설정을 자동으로 업데이트합니다.

sudo certbot –apache -d yourdomain.com -d www.yourdomain.com

이 명령어를 실행하면, 이메일 주소 입력, 서비스 약관 동의, 이메일 마케팅 수신 동의 여부 등의 질문에 답해야 합니다. 그리고, Certbot은 자동으로 SSL 인증서를 발급받고, Apache 설정을 업데이트합니다.

3. 자동 갱신 설정

SSL 인증서는 90일마다 갱신해야 합니다. Certbot은 자동 갱신을 지원하므로, 크론 잡(cron job)을 설정하여 자동으로 인증서를 갱신할 수 있습니다. Certbot 설치 시 자동으로 생성되므로, 별도의 설정 없이도 작동합니다. 그러나 수동으로 갱신 절차를 테스트하고 싶다면 다음 명령어를 사용할 수 있습니다.

sudo certbot renew –dry-run

4. Apache 설정 확인 및 수정

Certbot은 대부분의 설정을 자동으로 처리하지만, 필요에 따라 Apache 설정 파일을 직접 수정해야 할 수도 있습니다. SSL 설정은 주로 /etc/apache2/sites-available/yourdomain.com-le-ssl.conf에 위치합니다. 보안을 강화하기 위해, 다음과 같은 추가 설정을 고려할 수 있습니다.

HSTS(Strict-Transport-Security) 설정 추가: 사용자가 HTTPS를 통해서만 사이트에 접속하도록 강제합니다.
서버 시그니처 끄기: Apache 서버 버전과 OS 정보를 숨깁니다.

Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”
ServerSignature Off

이 설정들은 VirtualHost *:443 섹션 내에 위치해야 합니다.

5. 변경 사항 적용

모든 변경 사항을 적용하고 Apache 서버를 재시작합니다.

sudo systemctl restart apache2