Ncloud로 Ubuntu 서버를 생성했고 Let's Encrpty와 certbot을 이용해서 https 설정을 해보려한다.
Let’s Encrpty 는 기관이고, 이 기관을 통해서 무료로 TLS 인증서를 발급받을 수 있다.
Certbot은 Let’s Encrpty에서 인증서를 발급받고 https를 활성화하는 오픈소스 소프트웨어이다.
암호화 프로토콜을 거친 암호화된 HTTP 통신
이전에는 SSL(Secure Sockets Layer)으로 불렸지만 SSL 2.0에서 발견된 취약점을 보완하기 위해 재설계된 SSL3.0을 배포하며 TLS로 이름이 변경되었다.
HTTP는 80 포트를 사용하고 HTTPS는 443 포트가 사용된다.
그림으로 쉽게 보는 HTTPS, SSL, TLS - brunch
Transport Layer Security, 전송 계층 보안
인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하기 위해 설계되어 널리 채택된 보안 프로토콜
HTTP 프로토콜 위의 TLS 암호화를 구현한 것이 HTTPS이다
TLS는
transport-layer-security-tls - cloudflare
이해하기 쉬운 예시로 사용자 로그인을 예시로 들면 Http 프로토콜로 사용자의 아이디와 비밀번호를 서버에 보내면 평문으로 보내지게 된다. 그러면 통신과정에서 정보를 탈취당하면 그대로 정보가 노출된다. 하지만 Https를 이용하게 되면 데이터가 암호화되어 데이터가 탈취되더라도 쉽게 알아내기 어렵다.
이제 HTTPS에 대해서 간단히 알아보았으니 ubuntu에 설정을 해보자!
그전에!
프로젝트에서 쓸 도메인을 구매해두어서 그걸 사용했다.
없다면 내도메인.한국
을 이용해봐...????
certbot을 설치하기 전에 snap 패키지 관리 도구를 설치한다.
Certbot Documentation에서 Snap을 이용한 설치를 권장하고 있기 때문!
snap은 패키지 관리 도구로 apt와 달리 모든 종속성을 포함한다는 특징을 가진다.
apt-get install snapd -y
snap --version
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --version
# 인증서 발급과 설치 모두 진행
sudo certbot
입력하고 차례로 이메일, y, y 도메인
을 입력한다.
그 후 https로 접속해보면 바로 실행이 된다!
참고