본문 바로가기
개발이야기/개발환경설정

#5. SSL 인증서 설정

by dev.josh 2020. 3. 19.
반응형

Contents

#1. CentOS7 서버 생성 및 설정(With 네이버 클라우드 플랫폼)

#2. Root 계정 설정

#3. MariaDB 설치 및 설정

#4. Nginx 설치 및 설정

#5. SSL 인증서 설정

   5-1 Let`s Encrypt 설치 및 설정

   5-2 Nginx 설정

   5-3 인증서 갱신

 

 

(대망의)5. SSL 인증서 설정

 

5-1 Let`s Encrypt 설치 및 설정

yum install –y git
git clone https://github.com/letsencrypt/letsencrypt

yum 명령어로 git 을 설치해 준 뒤, Let`s Encrypt 를 clone 받는다

 

letsencrypt 폴더가 생성되면 성공

 

 

 

./letsencrypt-auto certonly —standalone

명령어를 입력하면 아래와같이 나온다.

이메일을 입력

필수약관 동의 A

광고이메일을 받겠느냐 N

도메인

 

 

다시

./letsencrypt-auto certonly --manual --email developer.jsh@gmail.com -d joweb.site

./letsencrypt-auto certonly --manual --email [이메일] -d [도메인]

을 입력해 준다.

 

IP가 기록된다는 것에 동의 Y

파란색 부분은 '파일의 내용' 이고,

초록색 부분은 '파일의 경로 및 파일 이름' 이다.

해당 상태에서 enter를 누르지 않고 파란색 부분과 초록색 부분을 복붙 하겠다.

 

(Tip: PuTTY 커맨드 전체 복사)

PuTTY

푸티의 상단바에서 우클릭을 하면 위와 같은 메뉴가 나오고 'Copy All to Clipboard' 를 눌러 전체 복사를 해서 메모장에 붙여넣기를 해주자!

 

복사를 잘 해놨으면 기본 커맨드창(PuTTY)은 냅두고 새로운 커맨드창(PuTTY)을 열어주겠다.

 

mkdir -p /joWeb/frontend/dist/.well-known/acme-challenge

Nginx가 바라보는 root 경로 밑에 /.well-known/acme-challenge 폴더를 생성해 준다.

 

vi /joWeb/frontend/dist/.well-known/acme-challenge/yY01OBmDyKInNQcZzBMmX-OlLzLRF557n7Ef2NbjGCY

vi 명령어로  /.well-known/acme-challenge 폴더에 초록색 부분 난수(?) 이름으로 파일을 생성해 준다.

(아래 스샷 참고)

파일 이름

 

yY01OBmDyKInNQcZzBMmX-OlLzLRF557n7Ef2NbjGCY 파일의 내용은

파란색 부분으로 채워준다.

 

 

그리고 다시 원래 커맨드창으로 돌아와서 enter를 누르면 아래와 같은 화면을 볼 수 있다.

해당 경로에 인증키가 생성 되었으면 성공!

/etc/letsencrypt/live/joweb.site/fullchain.pem;

/etc/letsencrypt/live/joweb.site/privkey.pem;

 

 

 

5-2 Nginx 설정

 

vi etc/nginx/nginx.conf

vi 명령어로 nginx.conf 파일의 내용을 수정해 준다.

생성된 인증키의 경로를 아래와 같이 적어준다.

server {
	listen       443 ssl default_server;
  	listen       [::]:443 ssl default_server;
 	server_name  joweb.site;

	ssl on;
 	ssl_certificate     /etc/letsencrypt/live/joweb.site/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/joweb.site/privkey.pem;

 	location / {
	 root	/joWeb/frontend/dist;
	 index	index.html;
 	}
 }

ssl on;
ssl_certificate      /etc/letsencrypt/live/joweb.site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/joweb.site/privkey.pem;

 

 

기존 80 포트의 설정은 443 포트로 리다이렉트 시킨다.

    server {
      listen 80 default_server;
      server_name _;
      return 301 https://$host$request_uri;
    }

 

Nginx를 재시작 해주자.

systemctl stop nginx
systemctl start nginx

 

 

네이버 클라우드 플랫폼의  ACG 설정에서 443 포트를 추가해 준다.

ACG 설정
443 포트 추가

 

443 포트를 추가해주고 웹사이트로 들어가면 SSL인증서가 성공적으로 적용된 모습을 확인할 수 있다.

HTTPS

 

5-2 인증서 갱신

 

Let`s Encrypt 는 무료로 인증서를 만들어준다. 대신 생성일로부터 3개월마다 갱신을 해줘야 된다.

만료날짜가 1개월 미만일때 갱신이 가능하다. 갱신하는 방법은 매우 간단하다.

 

cd letsencrypt
./certbot-auto renew
./certbot-auto renew –dry-run

./certbot-auto renew  명령어로 인증서를 갱신 할 수 있다.    

./certbot-auto renew –dry-run 인증서를 실제로 갱신하기 전에 이상 없는지 시뮬레이션 해볼 수 있는 명령어이다.

 

 

반응형