관리 메뉴

JeongMin-dev

[Let’s Encrypt] 인증서 발급 & 배포 본문

Server/Let's'Encrypt

[Let’s Encrypt] 인증서 발급 & 배포

클딧 2023. 6. 30. 14:32

이 포스트에서는 인증서 발급 방법과 서버를 끄지 않아도 갱신할 수 있는 배포 환경을 만들어 보겠습니다.

지극히 개인적인 세팅 방법이니 참고하실 분만 참고해 주세요

 

테스트 환경은 다음과 같이 구성했습니다.

  • 운영체제 : Amazon Linux
  • 도메인 : test.domain.com( 도메인은 CloudFlare 사이트를 사용했습니다. )
  • 웹서비스 : Nginx

 

설치

1. EPEL 리포지토리 활성화

amazon-linux-extras install epel
  • Amazon Linux의 경우 EPEL 저장소를 활성화시켜줘야 합니다.

2. Nginx 설치

yum install nginx

3. Certbot 설치

yum install certbot

Nginx, Certbot 설치 과정이 끝났으면 이제 인증서를 발급할 차례이다.

 

인증서 발급

1. 인증서 발급

certbot certonly --nginx -d [도메인]
  • 도메인 부분에는 자기가 생성한 도메인을 넣는다 ex) www.test.com

명령어를 사용했다면 위와 같은 텍스트가 나타날 것입니다.

차례대로 어떠한 것인지 설명해 드리겠습니다.

 

  1. 이메일 요구 ( 자주 사용하는 이메일을 적으면 됩니다. )
  2. 약관 동의 요구 ( y로 동의하시면 됩니다. )
  3. 이메일 통해 소식전달 ( 이메일로 소식을 전달해 준다는 이야기입니다. )

정상적으로 발급이 완료되었다면은 아래 명령어를 통해 확인해 보자.

ls -l /etc/letsencrypt/live/[도메인]/

Nginx 세팅

vi /etc/nginx/nginx.conf 명령어를 사용하여 nginx설정 파일을 연다.

그 후 다른 코드는 건들일 필요없고 server 부분만 지운후 아래 코드를 넣는다.

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name  test.domain.com;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }

        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;
        }

        ssl_certificate /etc/letsencrypt/live/test.domain.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/test.domain.com/privkey.pem; # managed by Certbot
    
		}
    server {
    if ($host = test.domain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

        listen       443;
        listen       [::]:443;
        server_name  test.domain.com;
    return 404; # managed by Certbot

}

그후 server_name을 자기가 설정한 도메인으로 적은 후

systemctl restart nginx

명령어를 사용하면 접속이 잘 될 것이다.

'Server > Let's'Encrypt' 카테고리의 다른 글

[Let’s Encrypt] 인증서 갱신, 확인 명령어  (0) 2023.06.26