내용으로 건너뛰기

Lightsail 인스턴스에서 호스팅되는 Bitnami 스택에서 Let's Encrypt SSL 인증서를 갱신하려면 어떻게 해야 합니까?

4분 분량
0

Amazon Lightsail Bitnami 인스턴스에 설치된 내 웹 사이트의 Let's Encrypt SSL 인증서가 곧 만료될 예정입니다.

간략한 설명


Let's Encrypt SSL 인증서는 만든 후 90일이 지나면 만료됩니다. Lightsail에서 호스팅되는 Bitnami 스택에 Let's Encrypt SSL 인증서를 설치하려면 어떻게 해야 합니까?를 사용하면 표준 인증서가 자동으로 갱신됩니다. 그러나 인증서가 올바르게 구성되지 않은 경우 자동 갱신이 실패할 수 있습니다.

Amazon Lightsail에서 호스팅되는 Bitnami 스택에 와일드카드 Let's Encrypt SSL 인증서를 설치하려면 어떻게 해야 합니까?에 안내된 방법 2에 따라 와일드카드 Let's Encrypt 인증서를 설치했다면 인증서를 수동으로 갱신해야 합니다. 방법 2의 경우 자동 갱신을 지원하지 않습니다.

다음 해결 방법에서는 WordPress, LAMP, Magento, MEAN 등 Bitnami에서 호스팅하는 Lightsail 인스턴스에 인증서를 수동으로 갱신하는 방법을 설명합니다.

해결 방법

인증서 설치 도구 파악

인증서를 설치할 때 사용한 도구를 파악합니다. SSL 인증서를 설치하는 데 사용한 도구를 파악하려면 다음 작업을 수행하십시오.

  1. 디렉터리 /etc/letsencrypt/opt/bitnami/letsencrypt에서 다음 명령을 실행하여 인증서 파일을 검색합니다. DOMAIN을 도메인 이름으로 바꿔야 합니다.

    sudo grep -irl "$(openssl s_client -verify_quiet -showcerts -connect DOMAIN:443 2>/dev/null | sed -n '/BEGIN/,/END/{p;/END/q}' | head -n 3 | tail -n 2)" /opt/bitnami/letsencrypt /etc/letsencrypt
  2. 인증서 파일이 /opt/bitnami/letsencryp의 하위 디렉터리 내에 있다면 bncert-tool 또는 Lego 클라이언트로 인증서가 설치되었을 것입니다. 이를 확인하려면 다음 명령을 실행합니다.

    sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

단계 1의 명령 출력이 두 번째 명령에서 제공한 인증서 경로와 일치하면 bncert-tool 또는 Lego로 인증서가 설치된 것입니다.

/etc/letsencrypt의 하위 디렉터리 내에 인증서 파일이 있는 경우 Certbot으로 인증서가 설치되었을 수 있습니다. 이를 확인하려면 다음 명령을 실행합니다.

sudo certbot certificates

단계 1의 명령 출력이 cerbot 명령에서 제공한 인증서 경로와 일치하면 Certbot으로 인증서가 설치된 것입니다.

파악한 도구에 따라 관련 해결 단계를 따르십시오.

bncert-tool 또는 Lego로 설치된 Let's Encrypt 인증서 갱신

다음 명령을 실행합니다.

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90

참고: EMAIL-ADDRESS를 바꾸고 사용 중인 이메일 주소 중 하나를 사용하십시오. 또는 인증서를 설치할 때 사용한 것과 동일한 이메일 주소를 사용하십시오. DOMAIN을 도메인 이름으로 바꿉니다.

sudo /opt/bitnami/ctlscript.sh start

다음 명령을 사용해 인증서를 설치하는 데 사용한 이메일을 검색할 수 있습니다.

sudo ls /opt/bitnami/letsencrypt/accounts/acm*

필요한 경우 다음 명령을 사용해 도메인 이름을 확인합니다.

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Certbot 도구를 사용해 설치한 Let's Encrypt 인증서 갱신

인증서를 설치하는 데 사용한 인증 방법을 확인하려면 다음 명령을 실행합니다.

sudo cat /etc/letsencrypt/renewal/DOMAIN.conf

참고: DOMAIN을 인증서의 기본 도메인 이름으로 바꿉니다.

명령 출력에서 authenticator 파라미터 값을 확인하십시오. 값에 따라 다음 갱신 방법 중 하나를 따르십시오.

authenticator 파라미터 값이 standalone, webroot, apache, nginx, dns-route53 또는 manual이 아닌 기타 값이라면 다음 명령을 사용해 갱신을 완료하십시오.

sudo /opt/bitnami/ctlscript.sh stop
sudo certbot renew
sudo /opt/bitnami/ctlscript.sh start

이 명령은 갱신 예정인 설치된 인증서를 모두 갱신합니다.

- 또는 -

authenticator 파라미터 값이 manual이고 pref_challs 파라미터 값이 dns인 경우 자동 갱신을 설정할 수 없습니다. 다음 단계에 따라 수동으로 갱신해야 합니다. 참고: 인증서를 갱신할 때마다 이 단계를 반복해야 합니다.

  1. 이 방법을 사용하려면 도메인의 DNS 공급자에 TXT 레코드를 추가해야 합니다. 세션 제한 시간이 초과되지 않도록 Linux GNU Screen에서 명령을 실행하는 것이 모범 사례입니다. 자세한 내용은 Linuxize 웹 사이트의 Linux Screen 사용 방법을 참조하십시오.
    Screen 세션을 시작하려면 다음 명령을 입력합니다.

    screen -S letsencrypt
  2. 다음 명령을 실행하고 Domains 파라미터 값을 확인합니다. DOMAIN을 인증서의 기본 도메인 이름으로 바꿉니다.

    sudo certbot certificates -d DOMAIN
  3. 다음 명령을 실행하여 인증서를 갱신합니다. -d 옵션을 사용해 이전 명령에서 찾은 각 도메인을 동일한 순서로 포함해야 합니다. 도메인의 순서를 추가, 제거, 또는 변경하는 경우 원래 인증서를 갱신하는 대신 새 인증서를 만들 수 있습니다.

    sudo certbot certonly --manual --preferred-challenge dns -d DOMAIN-1 -d DOMAIN-2 --force-renewal
  4. 지정한 도메인의 소유 여부를 확인하는 메시지가 표시됩니다. 이 확인은 도메인의 DNS 레코드에 TXT 레코드를 추가하기 위한 것입니다. Let's Encrypt는 확인을 위해 사용해야 하는 하나 또는 여러 개의 TXT 레코드를 제공합니다.

  5. 화면에 TXT 레코드가 표시되면 해당 레코드를 도메인의 DNS에 추가합니다.
    중요: TXT 레코드가 인터넷 DNS로 전파되었는지 확인할 때까지 Enter 키를 누르지 마십시오. CTRL+D를 누르면 현재 화면 세션이 종료되므로 누르지 마십시오.

  6. TXT 레코드가 인터넷 DNS로 전파되었는지 확인하려면 MX Toolbox 웹 사이트의 DNS 텍스트 조회에서 찾아보십시오. 텍스트 상자에 다음 텍스트를 입력합니다.

    _acme-challenge.example.com

    참고: example.com을 도메인으로 바꿉니다.

  7. TXT 조회를 선택하여 검사를 실행합니다.

  8. TXT 레코드가 인터넷 DNS로 전파되면 페이지에 TXT 레코드 값이 표시됩니다. 화면으로 돌아가서 Enter 키를 누릅니다.

  9. 쉘에서 제거한 경우 screen -r SESSIONID 명령을 통해 돌아갑니다.

  10. 세션 ID를 가져오려면 screen -ls 명령을 실행합니다.

  11. Certbot 프롬프트에서 다른 TXT 레코드를 추가하라는 메시지가 표시되면 5~8번 단계를 다시 완료합니다.

SSL 인증서가 성공적으로 생성되면 다음 메시지를 받습니다. "Successfully received certificate".

AWS 공식업데이트됨 8달 전
댓글 없음