이전글: 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. 참고 사이트
이분의 도움을 정말 많이 받았습니다.
'기타 학습 정리' 카테고리의 다른 글
HTML 시맨틱 마크업이란 (0) | 2020.02.18 |
---|---|
나라장터 더보기 자동클릭 (0) | 2020.01.30 |
무료 도메인 받고 AWS 인스턴스와 연결하기 (0) | 2019.12.12 |
AWS 인스턴스에 nginx 설치 후 접속까지 (0) | 2019.12.11 |
쉘 스크립트 변수 선언 방법 (0) | 2019.11.22 |