본문 바로가기

Back End/Server

[Server] AWS Server 구축 (Nginx + PhP + MySQL) -5

AWS Server 구축(+Nginx PhP MySQL)

-5-


개요

구축한 Server에 https protocol 도 추가하여준다

 

목차

 

진행과정

1. letsencrypt 설치

 

$ sudo apt-get install letsencrypt -y

Let`s Encrypt를 통해 SSL 인증서를 얻기 위한 letsencrypt를 먼저 설치하여준다. 이 때 Certbot은 letsencrypt안에 포함되어 있으므로 별도로 설치해주지 않아도 된다.

 

2. Nginx 용 Certbot 설치

Nginx 설치 전 update를 한번 더 진행해준다

 

$ sudo apt upgrade -y

 

$ sudo apt install certbot python3-certbot-nginx

그 후 한번 더 upgrade를 진행 후 Nginx web server 용 python3를 설치한다

 

3. Nginx 설정

$ sudo vi /etc/nginx/sites-available/default

위의 파일로 이동하여 servername에 domain name을 추가하여준다

 

성공적으로 반영되었음을 확인 후 Nginx를 다시 로딩하여준다

 

4. SSL 인증서 받기

Certbot은 다양한 플러그인을 통해 SSL 인증서를 얻을 수 있도록 다양한 방법을 제공하여준다.

이 때 Nginx는 필요할 때 마다 Nginx를 재구성하고, 구성을 reload 하는 방식을 사용한다

 

$ sudo certbot --nginx -d 사이트이름

SSL인증서를 필요로하는 Domain Name들을 -d option을 통해 추가하여준다

이 때 http와 https를 redirect 할 것인지의 여부또한 설정하여준다

+-d를 통해 이전에 보았던 sub domain도 추가하여준다

 

한번 더 실행시켜주면 재설치 혹은 갱신여부를 묻고, redirect 여부를 한번 더 묻는다. 원하는 설정으로 변경해주었다

 

위의 인증서가 성공적으로 설치되어, 위의 명령어창에서 받은 test server로 test를 해보았으나, 이용할 수 없다고 나왔다.

이는 아직 https의 In-Bound 규칙을 추가해주지 않아 발생한 것이므로 규칙을 추가하여준다

 

5. https In-Bound 규칙 추가 및 확인

위의 규칙을 추가해준다

 

그 후 sudo certbot --nginx를 한번 더 실행해 renew를 통해 갱신을 하여준다

 

그 후 다시 server를 test 하여주면 위와 같은 결과 및, https로 sub domain 에도 성공적으로 접근 가능하게 되는것을 확인 할 수 있다.

 

+ Certbot 자동 갱신기능

Let`s Encrypt의 인증서의 유효기가는 90일이다. 따라서 90일마다 재갱신 해주어야하는데, 설치시 자동으로 재갱신 명령어가 들어가 있어 다음의 명령어로 확인해주면 된다.

$ sudo certbot renew --dry-run