본문 바로가기
coding/AWS

[Nginx]SSL 인증 - Let's Encrypt(http to https)

by 꾸준한 개발 2022. 3. 24.
반응형

예전에 프로젝트 하면서 https인증까지 공부하면서 인증서 발급까지 받았는데 3개월이 지나서 재갱신 할겸 SSL 인증받은 걸 정리해 보겠습니다. Aws Ec2 ubuntu에서 nginx을 통해서 인증서를 적용시키려 합니다. 인증서를 발급 받기 전에 먼저 도메인을 구매하셔야 발급 받을 수 있으니 ip밖에 없다면 먼저 도메인을 연결하고 인증하시면 됩니다.

SSL 인증서 발급 받기


1. letsencrypt 설치

$ sudo apt-get update
$ sudo apt-get install letsencrypt -y

2. Nginx 중지

인증서를 발급/재발급 받기 위해서는 nginx: 80포트에서 돌아가고 있는 것을 중지 시켜주셔야합니다.

$ sudo systemctl stop nginx

3. 인증서 발급받기

# sudo letsencrypt certonly --standalone -d [도메인 입력] // www.example.com

- 알람 받을 이메일을 입력해줍니다. ex) example12@gmail.com

- 동의 해줍니다. a입력

- EFF의 소식을 이메일로 받을지 선택합니다.

그러면 정상적으로 인증서 키를 받은것을 확인 할수 있습니다.

/etc/letsencrypt/live/도메인/fullchain.pem, /etc/letsencrypt/live/도메인/privkey.pem

4. nginx설정하기

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

이경로에 접속해서 vim editor를 사용해서 default파일을 수정해줍니다.

 

 

server {
 ...

        listen 443 ssl default_server;
         listen [::]:443 ssl default_server;

         ssl_certificate /etc/letsencrypt/live/도메인/fullchain.pem;
         ssl_certificate_key /etc/letsencrypt/live/도메인/privkey.pem;
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_ciphers HIGH:!aNULL:!MD5;
 ...
}

인제 받은 인증서키를 넣어주고 listen 443 ssl default_server;, listen [::]:443 ssl default_server; 앞에 있는 #을 지워줍니다.

5. aws 443port 열어주기

433port 개방

6. 80port 443port로 redirect

server {
        listen 80;
        server_name example.com;
        root html;

        location / {
        return 301 https://example.com$request_uri;
    }
}

/etc/nginx/sites-available/default 경로를 vim에디터로 다시 킨다음 맨 아래에 위에 코드 작성하고 저장하고 나옵니다.

7. nginx 재시작

$ sudo service nginx restart

// 에러가 있는지 상태 확인
$ sudo service nginx status

 

8. 재발급

$ sudo certbot renew
반응형

댓글