https 적용을 진행하던 중에 오류가 나서 해결을 못하고 있었습니다.ㅠ

강의대로 진행했는데, 왜???

이러던 중에 질답게시판에 제로초님이 블로그글을 참고하여 진행하라고 댓글을 달아두신걸 봤고....

 

제가 나중에 헷갈릴가봐.. 나름대로 추가 정보를 정리하여 글을 작성합니다.

약간의 난관들도 있었지만, 다행이 성공했습니다.!

 

제로초님 블로그를 거의 대부분 참고했습니다.

www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb

 

(NodeJS) nginx와 let's encrypt로 SSL 적용하기(+자동 갱신)

리눅스에서 letsencrypt를 직접 설치합시다. 2020년 9월부로는 기존 방식보다 snap을 통해서 설치하는 게 더 쉬운 것 같습니다(https://snapcraft.io/certbot) 기존 방식 wget https://dl.eff.org/certbot-auto

www.zerocho.com

 

각 서버 모두 진행해야합니다. (프론트, 백 둘다)

다만 포트가 같으면 오류가 납니다.

 

 

설치

Certbot를 통해 Let's Encrypt SSL 인증서를 발급받습니다.

무료로 제공해주고 있습니다. 

이 인증서가 있어야 https를 사용할 수 있습니다.

인증서는 무료이지만, 3개월마다 갱신해줘야합니다.

sudo snap install certbot --classic
sudo apt-get install nginx

(apt-get은 우분투에서 사용하는 패키지 관련 명령어 도구입니다.)

 

 

nginx.conf 수정

그 후에 설정 하나를 수정해줘야합니다.

vim 에디터를 통해 수정해줄 것입니다.

vim /etc/nginx/nginx.conf

만약 이렇게 쳤는데.

권한을 요구한다면 sudo 를 통해 권한을 높여줍니다.

명령어 앞에 sudo를 붙이고 vim ~~를 입력하면 됩니다.

 

까만창이 뜨는데, 방향키로 움직일 수 있고 수정하기 위해서 

a를 누르면 INSERT 모드로 변경됩니다.

include 로 작성된 하단에 작업합니다.

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

// ===============작성해야하는 것
	server {
		server_name naver.com;
        listen 80;
        location / {
			proxy_set_header Host $host;
            proxy_pass http://127.0.0.1:3060;
            proxy_redirect off;
        }
    }
// ===============작성해야하는 것

server_name에 naver.com을 넣어놨는데, 본인의 사이트를 넣습니다.

 

저장할땐 ESC를 눌러서 커서를 제거한 후 :wq!를 입력합니다.

 

 

포트 확인

그 후에 80포트로 등록했으니 80포트가 사용되고 있는지 확인합니다.

사용되고 있다면 진행이 안되기 때문입니다.

sudo lsof -i tcp:80

80포트 확인

사용 중이라면 kill 해줍니다.

만약 내가 kill을 어떻게 하는 지 모르겠다면 아래와 같이 입력하세요.

위에서 PID는 (프로세스아이디) 19888이므로 아래와 같이 명령어를 입력합니다.

kill -9 19888

 

 

인증서 발급

그 후 인증서를 받기위해 명령어를 입력!

sudo certbot --nginx

 

이메일입력

 

이메일을 입력해줍니다.

그 후 약관동의를 다 해줍니다.

 

약관동의 1
약관동의2
설정 마지막

1번 입력 후 엔터를 쳐줍니다.

 

 

nginx.conf 설정

그 다음 다시 vim 에디터를 통해 작업을 합니다.

sudo vim /etc/nginx/nginx.conf

들어가보면 내가 작성하지 않은 코드들이 추가로 작성되어있습니다.

인증서를 발급 받으면서 작성된 코드들인데, 주석으로 #managed by Certbot과 같이 뒤에 적혀있습니다.

(제가 줄 정렬을 새로한 거라 그런데, 원본은 정렬이 안되어있습니다.)

nginx.conf 

 

 

default 수정

nginx.conf 2

 

nginx.conf 파일에서 include /etc/nginx/sites-enabled/*;가 작성되어있습니다.

때문에.. include가 되는 파일 중에 vim에디터를 통해 default 파일을 수정해줘야합니다.

vim /etc/nginx/sites-enabled/default

안에 server로 설정된 부분을 # <- 을 통해 주석처리합니다.

:wq!를 통해 저장하고 vim 에디터를 나옵니다.

 

 

nginx start

sudo service nginx start

 

 

참고

에러가 난다면 해 볼 수 있는 행동들입니다.

 

0. 무조건 상태먼저 확인

nginx 에러 도움말

systemctl status nginx.service

 

아래와 같이 status를 확인할 수 있습니다.

저 같은 경우에는 오타였습니다.

status 확인

 

 

1. 포트확인 후 kill

과정 중에 설명이 되어있습니다.  설명대로 다시 진행합니다.

sudo lsof -i tcp:80 // or 443
kill -9 프로세스아이디

 

 

2. 문법체크

sudo nginx -t

 

문법 체크 결과

ok, successful 이 아니라면 해당 파일을 확인해봐야합니다. (오타나 설정을 잘못 입력했는지)

 

 

3. 서버가 켜있던 상태에서 vim에디터를 통해 설정을 바꾼거라면 reload

sudo service nginx reload

 

 

nginx 명령어

// 시작
sudo service nginx start

// 재시작
sudo service nginx restart

// 중지
sudo service nginx stop

// 상태
sudo service nginx status

// 설정 
sudo service nginx reload

// 설정 파일 문법 체크
sudo nginx -t

 

 

 

+ Recent posts