본문 바로가기

🌼 TIL

SSL은 무엇인가? WSL에서 SSL 발급받기

SSL은 Secure Sockets Layer로 넷스케이프사가 만든 암호화 규약이다.
현재는 SSL을 기반으로 한 TLS를 사용하며, 핸드쉐이크 과정을 통해 양측에서는 메시지를 교환하여 서로를 인식하고 서로를 검증하게 된다.

 

SSL인증서

서버는 신원을 확인받기 위해 CA 기관이 발급해주는 인증서가 필요하게 된다.
인증서에는 다음 내용들이 포함된다.

  • 인증서가 발급된 대상 도메인 이름
  • 발급받은 사람, 조직, 장치
  • 발급한 인증 기관
  • 인증 기관의 디지털 서명
  • 관련 하위 도메인
  • 인증서 발급 날짜
  • 인증서 만료 날짜
  • 공개 키(개인 키는 비밀로 유지됨)

인증서의 최대 유효 기간은 13개월으로, 유효 기간이 짧은 이유는 SSL/TLS 인증서가 악용될 가능성이 줄이기 위해서다.
추후 나올 Let's Encrypt는 3개월이다.

 

현재 나는 WSL환경에서 Let's Encrypt를 통해 SSL을 발급받기를 원한다.

다음은 간단한 발급 방법이다.

1. WSL 환경 준비

  1. WSL 설치 및 Ubuntu 등 Linux 배포판 설치가 되어 있어야 한다.
  2. WSL을 최신 버전으로 업데이트하여 설치를 원활하게 진행한다.

2. Certbot 설치

WSL의 터미널에서 다음 명령어로 Certbot을 설치한다.

sudo apt update sudo apt install certbot

3. Nginx 또는 Apache 설치 확인

Certbot은 Nginx나 Apache 웹 서버와 함께 사용된다. Nginx가 설치되어 있다면, Certbot은 자동으로 Nginx 설정을 감지하여 SSL 인증서를 설정할 수 있다. 만약 설치가 되어 있지 않다면 다음과 같이 설치한다.

sudo apt install nginx

4. Certbot을 이용하여 SSL 인증서 발급받기

Let's Encrypt 인증서를 발급받기 위해 Certbot을 실행한다. 도메인 이름이 DNS에 등록되어 있어야 하며, 포트 80과 443이 열려 있어야 한다.

sudo certbot --nginx

명령을 실행한 후, 도메인 이름을 입력하고 안내에 따라 진행한다. Certbot은 자동으로 SSL 인증서를 생성하고 Nginx 설정을 업데이트해준다.

5. 인증서 갱신 자동화

Let's Encrypt 인증서는 무료이기 때문에 90일(3개월)마다 갱신해야 하는 번거로움이 있다. Certbot을 사용하면 인증서를 자동으로 갱신할 수 있다. 다음 명령으로 갱신 테스트를 할 수 있다.

sudo certbot renew --dry-run

이 명령어는 갱신이 자동으로 잘 수행될 수 있는지 확인하는 테스트 명령이다.

 

이렇게 WSL 환경에서 Certbot을 이용해서 SSL을 발급받는 과정이다. 

Let's Encrypt는 HTTP-01 챌린지 방식을 사용하기 때문에 포트 80을 통해 도메인 소유권을 확인하고 있다. 

 

현재 나는 도메인을 ip공유기의 ip로 받고 있고, 해당 ip공유기에서 특정 ip를 포트포워딩 하고 있다.

나는 두개의 ip를 포트포워딩 하여 SSL 인증은 받고 싶은데, 포트는 하나의 ip로만 점거할 수 있기 때문에 현재 다른 ip를 포트포워딩 하려니 충돌이 있는 상태이다.

 

도메인에서 DNS를 통해 서브도메인을 만드는 방법이 있겠지만, 다른 방법을 찾아보고 포스팅하겠다.