도메인의 인증서를 등록할 때, Let's Encrypt가 도메인 소유권을 확인하기 위해 HTTP-01, DNS-01, 또는 TLS-ALPN-01 챌린지 중 하나를 사용하는데, 이 과정에서 웹 서버 또는 DNS 설정이 필요합니다.
HTTP-01 챌린지: 이 방법은 Let's Encrypt가 도메인에 대해 HTTP 요청을 보내어 도메인 소유권을 확인. 이 경우, Let's Encrypt 클라이언트가 일시적으로 웹 서버의 역할을 하거나, 기존에 설치된 웹 서버(nginx, apache 등)가 특정 경로(/acme-challenge)에 대한 요청을 처리
DNS-01 챌린지: 이 방법은 도메인의 DNS 레코드에 특정 값을 추가하여 소유권을 증명. 이 경우, 웹 서버가 설치되어 있지 않아도 됩니다. 하지만, 도메인의 DNS 설정에 접근할 수 있어야 함.
TLS-ALPN-01 챌린지: 이 방법은 TLS 핸드셰이크 과정을 통해 도메인 소유권을 확인함. 이 방법 역시 웹 서버가 필요하지는 않지만, 특정 포트(보통 443)에서 TLS 서버가 실행되고 있어야 함.
그렇다면 이번 주제인, 2번 (DNS-01 챌린지) 방식의 사용을 진행해보겠습니다. 여기서, 도메인은 seeunojt.com로, 와일드카드로 등록하도록 하겠습니다. 환경은 ubuntu로 진행합니다.
아래 명령어를 입력합니다.
sudo apt update
sudo apt-get install letsencrypt
이후, DNS-01 챌린지를 certbot 명령어를 통해 실행합니다.
certbot certonly --manual --preferred-challenges dns -d *.seeunojt.com
나온 결과를 DNS 서비스에 등록합니다.
이후 Enter를 누르게 되면,
위와 같은 결과가 나오고 위의 경로를 cat합니다.
성공적으로 SSL 인증서가 발급된 것을 확인할 수 있습니다.