Ncloud로 Ubuntu 서버를 생성했고 Let's Encrpty와 certbot을 이용해서 https 설정을 해보려한다.
Let’s Encrpty 는 기관이고, 이 기관을 통해서 무료로 TLS 인증서를 발급받을 수 있다.
Certbot은 Let’s Encrpty에서 인증서를 발급받고 https를 활성화하는 오픈소스 소프트웨어이다.
HTTPS란?
암호화 프로토콜을 거친 암호화된 HTTP 통신
이전에는 SSL(Secure Sockets Layer)으로 불렸지만 SSL 2.0에서 발견된 취약점을 보완하기 위해 재설계된 SSL3.0을 배포하며 TLS로 이름이 변경되었다.
HTTP는 80 포트를 사용하고 HTTPS는 443 포트가 사용된다.
그림으로 쉽게 보는 HTTPS, SSL, TLS - brunch
그러면 또 TLS는 뭔데?
Transport Layer Security, 전송 계층 보안
인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하기 위해 설계되어 널리 채택된 보안 프로토콜
HTTP 프로토콜 위의 TLS 암호화를 구현한 것이 HTTPS이다
TLS는
- 전송되는 데이터를 암호화하고
- 통신하는 대상을 인증하고
- 데이터의 무결성을 체크한다.
transport-layer-security-tls - cloudflare
이해하기 쉬운 예시로 사용자 로그인을 예시로 들면 Http 프로토콜로 사용자의 아이디와 비밀번호를 서버에 보내면 평문으로 보내지게 된다. 그러면 통신과정에서 정보를 탈취당하면 그대로 정보가 노출된다. 하지만 Https를 이용하게 되면 데이터가 암호화되어 데이터가 탈취되더라도 쉽게 알아내기 어렵다.
이제 HTTPS에 대해서 간단히 알아보았으니 ubuntu에 설정을 해보자!
그전에!
- 서버의 TCP 443, 80 포트를 오픈해야한다. AWS라면 인바운드 규칙이 되겠고 ncloud라면 포트포워딩이 될 것이다
- 도메인 주소가 필요하다.
프로젝트에서 쓸 도메인을 구매해두어서 그걸 사용했다.
없다면 내도메인.한국
을 이용해봐...????
Snap 설치
certbot을 설치하기 전에 snap 패키지 관리 도구를 설치한다.
Certbot Documentation에서 Snap을 이용한 설치를 권장하고 있기 때문!
snap은 패키지 관리 도구로 apt와 달리 모든 종속성을 포함한다는 특징을 가진다.
apt-get install snapd -y
snap --version
Certbot 설치
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --version
Certbot 실행
# 인증서 발급과 설치 모두 진행
sudo certbot
입력하고 차례로 이메일, y, y 도메인
을 입력한다.
그 후 https로 접속해보면 바로 실행이 된다!
- Certbot에 대해서 더 알아보기 : Certbot Documentation
참고
'Projects' 카테고리의 다른 글
로그인 후 요청했던 페이지로 돌아가기 (1) | 2023.12.17 |
---|---|
[코드실행기능 개발기 #1] 작업이 오래걸리는 요청을 어떻게 응답할까? (2) | 2023.12.17 |
[MLOps] wandb sweep으로 하이퍼파라미터 튜닝하기 - jupyter notbebook에서 실행하기 (0) | 2022.07.12 |
multi-columns: stratify split, 여러 개의 클래스 stratify로 데이터셋 분리하기 (0) | 2022.06.14 |
정답데이터 만들기 - Image annotation, VIA (0) | 2022.05.24 |