JangBaGeum.gif

[SSL] Nginx에 SSL 인증서 적용 (Let's Encrypt) 본문

Backend/보안

[SSL] Nginx에 SSL 인증서 적용 (Let's Encrypt)

장바금 2022. 7. 8. 21:43

이전 글

[SSL] certbot을 이용한 Let's Encrypt SSL 인증서 자동 갱신

 

[SSL] certbot을 이용한 Let's Encrypt SSL 인증서 자동 갱신

이전 글 [SSL] Certbot으로 SSL 무료 인증서 발급 프로젝트 진행 중 카카오 맵 API를 이용해 명소의 위치를 찍어주려고 한다. 하지만 로컬에서는 잘 보이지만 배포 환경에서는 보이지 않고 404를 받는

jangbageum.tistory.com

Nginx가 설치 되어있고 실행중이라는 가정 하에 적겠다.

 

$ sudo vim /etc/nginx/site-available/default

vim 에디터를 이용해 default 파일의 server 부분을 아래와 같이 수정해준다.

server {
        listen 80;
        server_name pybo.kr;
        rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
        listen 443;
        server_name pybo.kr;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/test.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/test.com/privkey.pem; # managed by Certbot
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
        ssl_prefer_server_ciphers on;

        location / {
                proxy_pass http://localhost:8080;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
        }
}

HTTP 요청 (80번 포트)은 HTTPS(443번 포트)로 리다이렉트 하도록 설정했다. 그 후 설치한 SSL 인증서를 적용하기 위해 SSL관련 설정을 정용했다.

 

이후 파일이 변경 되었으니 Nginx를 테스트 한 후 재시작 해주자.

$ nginx -t
$ service nginx reload

그렇다면 내 웹사이트에 들어갈 시 주소창에 http://가 아닌 https://로 되어 있을 것이다.