본문 바로가기

기타 학습 정리

Let`s encrypt 설치해서 인증서 받고 https 적용하기

이전글: 2019/12/12 - [기타 학습 정리] - 무료 도메인 받고 AWS 인스턴스와 연결하기

1. Let`s encrypt 설치하기

아래 명령어로 letsencrypt를 설치합니다.

sudo apt update -y && sudo apt install letsencrypt -y

 

수동으로 SSL 인증서를 발급받기 위해 현재 nginx가 사용하고 있는 80번 포트를 사용 중지 시킵니다.

sudo systemctl stop nginx

 

netstat -ant 명령어로 80포트를 사용하는 곳이 있나 다시 한 번 확인합니다.

 

2. SSL 인증서 발급하기

아래 명령어로 내 도메인을 위한 SSL 인증서를 발급받습니다. (앞에 http는 생략해야 합니다.)

sudo letsencrypt certonly --standalone -d lelana0824.crabdance.com

그러면 이메일을 입력하라는 화면이 나오고,

그 다음 서비스 이용에 동의하냐는 화면이 나오고,

마지막으로 이메일로 정보 수신 동의 할거냐는 화면이 나오는데 잘 대답해 주시면 됩니다.

 

여기서 별 문제가 없다면 IMPORTANT NOTE에 Congratulations! 하면서 성공을 알리는 메시지가 나옵니다. 발급이 완료 되었습니다. ( 이 부분은 스샷을 찍어야 했는데 스샷을 못찍고 그냥했네요.. )

 

발급받은 인증서는 /etc/letsencrypt/archive/도메인명/ 의 디렉토리에 저장되어 있고, 실제 사용할 때에는 /etc/letsencrypt/live/도메인명/의 디렉토리에 있는 symlink들을 사용할 것을 추천한다고 합니다. 

 

3. SSL 인증서 적용하기

/etc/nginx/sites-enabled에 있는 default 문서를 수정합니다.

 

현재 존재하는 server 블럭의 바로 아래에 다음을 추가합니다.

listen 443 ssl default_server;
listen [::]:443 ssl default_server;

ssl_certificate     /etc/letsencrypt/live/test.minibrary.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.minibrary.com/privkey.pem;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

위처럼 ssl_certificate와 ssl_certificate_key에 발급받은 키를 넣어줍니다.

 

설정을 저장하고 아래 명령어로 nginx를 시작합니다. 

sudo systemctl start nginx

이제 https://도메인 주소 로 들어가봅시다. 

위와 같이 사이트 주소 앞에 자물쇠가 잠겨있고 자물쇠를 눌렀을 때 저렇게 표시되면 성공한 것입니다! 

 

4. 리다이렉트 설정하기

기존 도메인 주소인 http://도메인 주소 로 들어가면 앞에 https 인증서가 없다고 나올 것입니다. 그래서 nginx 설정을 변경하여 해당 주소로 들어올 때 https://도메인 주소로 리다이렉트 해주도록 설정하겠습니다.

 

내용은 간단합니다. 기존에 있던 server 블록 (아마 손대지 않았다면 listen 80이라고 되어있을 것입니다. 그 안에 location / 블록이 있는데 이 부분을 아래와 같이 수정합니다.

location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                return 301 https://lelana0824.crabdance.com;
        }

추가된 부분은 return 301 ... 로 시작된 부분입니다. 이걸 추가해주시면 http 주소로 들어왔을 때 https로 시작되는 주소로 리다이렉트를 해줍니다. 

 

수정하는 김에 server_name도 다음과 같이 수정해줍니다.

server_name lelana0824.crabdance.com/;

서버 네임을 발급받은 도메인 네임으로 변경한 것입니다.

 

5. 참고 사이트

이분의 도움을 정말 많이 받았습니다.

https://kr.minibrary.com/353