Lightsail에서 호스팅되는 Bitnami 스택에 와일드카드 Let's Encrypt SSL 인증서를 설치하려면 어떻게 해야 하나요?

7분 분량
0

Bitnami 스택을 통해 Amazon Lightsail 인스턴스에 내 웹사이트에 와일드카드 SSL 인증서를 설치하려고 합니다.

간략한 설명


다른 인스턴스 블루프린트 또는 표준 인증서를 설치하는 방법에 대한 자세한 내용은 다음 AWS Knowledge Center 문서를 참조하세요.

해결 방법

Bitnami에서 호스팅하는 Lightsail 인스턴스에 와일드카드 Let's Encrypt SSL 인증서를 설치하는 단계는 도메인이 사용하는 DNS 공급자에 따라 다릅니다. DNS 공급자가 Lego 웹사이트의 DNS 제공자에 등록되어 있는지 확인하세요. 그런 다음 사용할 적절한 방법을 선택하세요.

  • 나열된 DNS 제공자 중 하나를 도메인이 사용하는 경우 Bitnami에서 제공하는 Lego 도구를 사용하세요.
  • 나열된 DNS 제공자 중 하나를 도메인이 사용하지 않는 경우 Certbot 패키지를 사용하세요.

참고: 파일 경로는 Bitnami 스택이 네이티브 Linux 시스템 패키지(Approach A)를 사용하는지 아니면 독립형 설치(Approach B)를 사용하는지에 따라 달라질 수 있습니다. 최신 Bitnami WordPress 블루프린트는 Approach A에서만 사용할 수 있습니다.

Bitnami 설치 유형을 식별하려면 다음 명령을 실행합니다.

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Lego 도구

Bitnami는 bncert 도구와 Lego 도구를 제공합니다. Lego 도구는 와일드카드 SSL 인증서 생성을 지원합니다. bncert 도구는 와일드카드 SSL 인증서 생성을 지원하지 않습니다.

참고: 다음 예제에서 DNS 공급자는 Amazon Route 53 및 Amazon Lightsail입니다.

Lego 도구를 사용하여 와일드카드 Let's Encrypt SSL 인증서를 설치하려면 다음 단계를 완료합니다.

  1. 프로그램 액세스 권한이 있는 AWS Identity and Access Management(AWS IAM) 사용자를 만듭니다. Lego가 DNS 검증을 완료하는 데 필요한 IAM 사용자 권한을 결정하려면 Lego 웹 사이트의 IAM 정책 예시를 참조하세요.

  2. 나노 편집기에서 파일 /root/.aws/credentials 파일을 열려면 다음 명령을 실행합니다.

    sudo mkdir /root/.aws
    sudo nano /root/.aws/credentials
  3. 자격 증명 파일에 다음 줄을 입력합니다.

    [default]
    aws_access_key_id = AKIA************E
    aws_secret_access_key = 1yop**************************l
    region = us-east-1

    **참고:**aws_access_key_idaws_secret_access_key를 사용자의 값으로 바꾸세요. us-east-1을 Lightsail 인스턴스의 AWS 리전으로 바꾸세요.

  4. 파일을 저장하려면 Ctrl + Xy, Enter를 차례로 누릅니다.

  5. Bitnami 인스턴스에 /opt/bitnami/letsencrypt/ 디렉터리가 포함되어 있지 않은 경우 다음 명령을 실행하여 Lego 클라이언트를 수동으로 설치하세요.

    cd /tmp
    curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz
    tar xzf lego.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
  6. 서버에 와일드카드 Let's Encrypt 인증서를 만들려면 서버 유형에 따라 다음 명령을 실행하세요.
    Route 53 네임 서버:

    sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

    Lightsail 네임 서버:

    sudo DNS_ZONE=DOMAIN /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

    참고: EMAIL-ADDRESS를 인증서 업데이트를 받을 이메일 주소로 바꾸세요. DOMAIN을 사용자의 도메인으로 변경하세요.
    SSL 인증서와 프라이빗 키는 /opt/bitnami/letsencrypt/certificates/DOMAIN.crt 또는 /opt/bitnami/letsencrypt/certificates/DOMAIN.key 위치에 생성됩니다.

  7. Bitnami 스택 서비스를 중지하려면 다음 명령을 실행합니다.

    sudo /opt/bitnami/ctlscript.sh stop
  8. 서버 및 접근 방식에 따라 SSL 인증서 및 인증서 키 파일을 웹 서버가 현재 읽고 있는 위치에 연결합니다.
    Apache, Approach A

    sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt

    Apache, Approach B

    sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
    sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
    sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt

    NGINX, Approach A

    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt

    NGINX, Approach B

    sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
    sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt

    참고: 위 명령의 경우 DOMAIN을 사용자의 도메인 이름으로 바꾸세요.

  9. Bitnami 스택 서비스를 시작하려면 다음 명령을 실행하세요.

    sudo /opt/bitnami/ctlscript.sh start
  10. 인증서 갱신을 자동화하려면 다음 명령을 실행하여 crontab 편집기를 여세요.

sudo crontab -e -u bitnami

참고: Let’s Encrypt 인증서는 90일 동안 유효합니다. crontab 파일에 다음 줄을 입력한 다음 파일을 저장하세요.
Apache

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful

Nginx

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload

참고: EMAIL-ADDRESS, DOMAIN, DNS를 사용자의 값으로 바꾸세요. HTTPS 리디렉션을 설정하세요. 자세한 내용은 Bitnami 웹 사이트에서 Apache를 통한 강제 HTTPS 리디렉션 및 ](https://docs.bitnami.com/general/infrastructure/nginx/administration/force-https-nginx/)NGINX를 사용한 강제 HTTPS 리디렉션[을 참조하세요.

Certbot 패키지

사전 요구 사항:

  • Certbot을 설치합니다.
  • 사용자의 Linux 배포판을 확인하세요. Bitnami 호스팅 인스턴스의 경우 Linux 배포판은 Debian 또는 Ubuntu입니다. 다음 명령을 실행하여 Linux 배포판을 확인하세요.
    cat /etc/os-release | grep -i ^id
    참고: 이 방법은 자동 인증서 갱신을 지원하지 않습니다.

Certbot 패키지를 사용하여 와일드카드 Let's Encrypt SSL 인증서를 설치하려면 다음 단계를 완료합니다.

  1. Linux GNU Screen 세션을 시작하세요. 도메인의 DNS 공급자에 TXT 레코드를 추가하는 데 시간이 걸리기 때문에 세션 시간이 초과될 수 있습니다. 세션이 시간 초과되지 않도록 Linux GNU Screen에서 명령을 실행하는 것이 가장 좋습니다. 화면 세션을 시작하려면 다음 명령을 실행합니다.

    screen -S letsencrypt
  2. Certbot 대화형 모드를 시작하려면 다음 명령을 실행합니다.

    sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com

    참고:****example.com을 사용자의 값으로 바꾸세요.
    "bash: certbot: command not found"와 같은 오류 응답이 표시되면 사용자의 PATH 환경 변수에 /bin/snap을 추가해야 할 수 있습니다. 먼저 “exit”를 입력하고 Enter를 누릅니다. 또는 Ctrl + D를 눌러 화면 세션을 종료합니다. 그런 다음 /etc/environment를 편집하고 목록에**/snap/bin**을 추가합니다. 시스템을 다시 시작하세요. 더 이상 오류가 발생하지 않는지 확인하려면 다음 명령을 실행하세요.

    $ certbot -h
  3. Let’s Encrypt가 제공하는 TXT 레코드를 복사하세요. Let's Encrypt의 경우 확인을 위해 사용해야 하는 TXT 레코드를 하나나 여러 개 제공합니다.

  4. 제공된 레코드를 도메인의 DNS에 추가합니다.
    중요: TXT 레코드가 인터넷 DNS로 전파되었는지 확인될 때까지 Enter 키를 누르지 마세요. 또한 Ctrl + D를 누르면 화면 세션이 종료되므로 누르지 마세요.

  5. 레코드가 전파되었는지 확인하려면 MxToolbox 웹 사이트의 DNS 텍스트 조회에서 TXT 레코드를 조회하세요.

    _acme-challenge.example.com

    참고:****example.com을 사용자의 값으로 바꾸세요.
    TXT 레코드가 전파되는 경우 해당 페이지에 TXT 레코드 값이 표시됩니다. 이전 화면으로 돌아가서 Enter를 누르세요.

  6. 쉘에서 사용자가 제거된 경우 다음 명령을 실행하여 쉘로 돌아가세요.

    Screen -r SESSIONID

    **참고:**screen -ls 명령을 실행해 세션 ID를 가져옵니다.

  7. (선택 사항) 프롬프트가 표시되면 이전 단계를 반복하여 다른 TXT 레코드를 추가하세요.
    참고: DNS 공급자로 Route 53을 사용하는 경우 행마다 하나의 TXT 값을 입력하세요. TXT 레코드를 편집한 다음 새 행에 certbot이 제공하는 TXT 값을 추가하세요.

  8. SSL 인증서 및 키 파일의 파일 위치를 저장하세요. SSL 인증서가 생성되면 “Successfully received certificate”라는 메시지가 표시됩니다.

  9. 인증서를 사용하도록 웹 서버를 구성하려면 서버 및 접근 방식에 따라 다음 명령을 실행합니다.
    Apache, Approach A

    sudo /opt/bitnami/ctlscript.sh stop
    sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
    sudo /opt/bitnami/ctlscript.sh start

    Apache, Approach B

    sudo /opt/bitnami/ctlscript.sh stop
    sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
    sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
    sudo /opt/bitnami/ctlscript.sh start

    NGINX, Approach A

    sudo /opt/bitnami/ctlscript.sh stop
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
    sudo /opt/bitnami/ctlscript.sh start

    NGINX, Approach B

    sudo /opt/bitnami/ctlscript.sh stop
    sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
    sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
    sudo /opt/bitnami/ctlscript.sh start

    참고: 위 명령의 경우 DOMAIN을 사용자의 도메인 이름으로 바꾸세요.

  10. HTTPS 리디렉션을 설정하세요. 자세한 내용은 Bitnami 웹 사이트에서 Apache를 통한 강제 HTTPS 리디렉션 및 ](https://docs.bitnami.com/aws/infrastructure/ruby/administration/force-https-nginx/)NGINX를 사용한 강제 HTTPS 리디렉션[을 참조하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전