certbot 명령어를 통해 조회 및 갱신하는 글들을 보고 따라해봤지만
이 글을 작성하는 시점에서 certbot 은 작동하지 않았다.
이렇게 sudo certbot certificates 또는 sudo certbot renew 등도 작동하지 않았다.
(certbot-auto certificates 와 certbot-auto renew 도 동일함)
결국 다른 정보들을 찾아서 아래와 같이 진행했다.
기존 발급받은 인증서를 조회해본다.
sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list
정상적으로 인증서가 있다면 아래와 같이 출력된다.
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: 도메인 <- 이 도메인을 가지고 갱신하는 것이다.
서버 종료를 시킨다.
sudo /opt/bitnami/ctlscript.sh stop
갱신 코드는 아래를 사용했다.
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" renew --days 90
도메인은 위에 Certificate Name에 있던 도메인을 입력하고 실행한다.
간혹 이메일 이슈 때문에 등록이 안될 때가 있다.
나는 아래 코드를 실행해주고 다시 위 갱신 코드를 실행하니 정상적으로 등록되었다.
sudo /opt/bitnami/letsencrypt/lego --tls --email="등록했던 이메일 주소" --domains="도메인" --path="/opt/bitnami/letsencrypt" run
(다음에 다른 서버 갱신 진행할 때 명확한 오류 과정이 생기면 수정할 예정)
정상처리가 진행되면 해당 인증서에 등록했던 도메인들에 대한 인증 갱신이 진행되는 과정과 결과가 나온다.
이제 서버를 가동시킨다.
sudo /opt/bitnami/ctlscript.sh start
인증서버 자동 갱신처리 진행
1. 자동 인증서 갱신하는 쉘 스크립트를 작성해야 하기 때문에 우선 쉘스크립트를 저장시킬 폴더를 만든다. (이미 있는 경우도 있다.)
sudo mkdir -p /opt/bitnami/letsencrypt/scripts
2. 아래 명령어를 이용하여 nano로 쉘스크립트 파일을 작성한다.
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
3. 위에서 갱신했던 그 코드를 포함한 서버 중단 + 갱신 + 가동 명령어를 기입한다.
#!/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. 저장한 파일에 권한을 추가한다.
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
5. crontab 으로 자동 갱신을 처리할 예정인데 기존에 있는 지 조회해 본다.
sudo crontab -l
기존에 설정한 적이 없으면 위 이미지처럼 없다고 나온다.
6. crontab 에 반복 스케쥴을 등록하기 위해 수정 모드로 진입한다.
sudo crontab -e
7. 어떤 에디터를 사용할 것인지 물어보길래 2번인 nano 를 선택했다.
8. 갱신 주기를 설정하는데 나는 갱신 주기는 매월 1일 0시0분에 갱신하는 걸로 아래 코드를 사용하였다.
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
nano 에디터에서 컨트럴+o → 엔터 → 컨트럴+x 로 저장하고 나온다.
9. sudo crontab -l 명령어로 저장되었는 지 확인할 수 있다.