lightsail ssl 인증서 갱신 + 자동 갱신 (bncert-tool 무료 ssl)

certbot 명령어를 통해 조회 및 갱신하는 글들을 보고 따라해봤지만
이 글을 작성하는 시점에서 certbot 은 작동하지 않았다.

이렇게 sudo certbot certificates 또는 sudo certbot renew 등도 작동하지 않았다.
(certbot-auto certificates 와 certbot-auto renew 도 동일함)

결국 다른 정보들을 찾아서 아래와 같이 진행했다.


기존 발급받은 인증서를 조회해본다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list
sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list
sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

정상적으로 인증서가 있다면 아래와 같이 출력된다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Found the following certs:
Certificate Name: 도메인
Domains: 등록된 도메인들
Expiry Date: 2023-07-12 23:16:48 +0000 UTC
Certificate Path: /opt/bitnami/letsencrypt/certificates/도메인.crt
Found the following certs: Certificate Name: 도메인 Domains: 등록된 도메인들 Expiry Date: 2023-07-12 23:16:48 +0000 UTC Certificate Path: /opt/bitnami/letsencrypt/certificates/도메인.crt
Found the following certs:
Certificate Name: 도메인
Domains: 등록된 도메인들
Expiry Date: 2023-07-12 23:16:48 +0000 UTC
Certificate Path: /opt/bitnami/letsencrypt/certificates/도메인.crt

Certificate Name: 도메인 <- 이 도메인을 가지고 갱신하는 것이다.

서버 종료를 시킨다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/ctlscript.sh stop

갱신 코드는 아래를 사용했다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90

도메인은 위에 Certificate Name에 있던 도메인을 입력하고 실행한다.

간혹 이메일 이슈 때문에 등록이 안될 때가 있다.
나는 아래 코드를 실행해주고 다시 위 갱신 코드를 실행하니 정상적으로 등록되었다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" run
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" run
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" run

(다음에 다른 서버 갱신 진행할 때 명확한 오류 과정이 생기면 수정할 예정)

정상처리가 진행되면 해당 인증서에 등록했던 도메인들에 대한 인증 갱신이 진행되는 과정과 결과가 나온다.

이제 서버를 가동시킨다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo /opt/bitnami/ctlscript.sh start
sudo /opt/bitnami/ctlscript.sh start
sudo /opt/bitnami/ctlscript.sh start


인증서버 자동 갱신처리 진행

1. 자동 인증서 갱신하는 쉘 스크립트를 작성해야 하기 때문에 우선 쉘스크립트를 저장시킬 폴더를 만든다. (이미 있는 경우도 있다.)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo mkdir -p /opt/bitnami/letsencrypt/scripts
sudo mkdir -p /opt/bitnami/letsencrypt/scripts
sudo mkdir -p /opt/bitnami/letsencrypt/scripts

2. 아래 명령어를 이용하여 nano로 쉘스크립트 파일을 작성한다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

3. 위에서 갱신했던 그 코드를 포함한 서버 중단 + 갱신 + 가동 명령어를 기입한다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/bin/bash
sudo /opt/bitnami/ctlscript.sh stop apache
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start apache
#!/bin/bash sudo /opt/bitnami/ctlscript.sh stop apache sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90 sudo /opt/bitnami/ctlscript.sh start apache
#!/bin/bash

sudo /opt/bitnami/ctlscript.sh stop apache
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start apache

nano 에디터로 저장할 때는 컨트럴+o 를 누르고 File Name to Write: 라면서 저장할 위치와 파일명을 물어보는 데 그냥 엔터치면 저장된다.
에디터를 빠져나가진 않으니 컨트럴+x 를 누르고 나온다.
(컨트럴+o → 엔터 → 컨트럴+x)

4. 저장한 파일에 권한을 추가한다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

5. crontab 으로 자동 갱신을 처리할 예정인데 기존에 있는 지 조회해 본다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo crontab -l
sudo crontab -l
sudo crontab -l

기존에 설정한 적이 없으면 위 이미지처럼 없다고 나온다.

6. crontab 에 반복 스케쥴을 등록하기 위해 수정 모드로 진입한다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo crontab -e
sudo crontab -e
sudo crontab -e

7. 어떤 에디터를 사용할 것인지 물어보길래 2번인 nano 를 선택했다.

8. 갱신 주기를 설정하는데 나는 갱신 주기는 매월 1일 0시0분에 갱신하는 걸로 아래 코드를 사용하였다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null

nano 에디터에서 컨트럴+o → 엔터 → 컨트럴+x 로 저장하고 나온다.

9. sudo crontab -l 명령어로 저장되었는 지 확인할 수 있다.

Subscribe
Notify of
guest


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 댓글
Inline Feedbacks
View all comments
TOP