먼저 certbot
을 설치해줍니다.
sudo apt update
sudo apt install certbot
sudo certbot certonly --manual --preferred-challenges dns -d "*.domain.com" -d "domain.com"
*.domain.com
만 주게되면 domain.com
으로 접속 시 ssl
적용이 되지 않습니다. -d
옵션을 한번 더 줘서 지정해주기
발급받은 인증서를 통해 SSL을 적용하고자 하는 도메인의 실소유자인지 인증하는 과정이 필요합니다.
이렇게 발급한 값을
_acme-challenge
를 서브 도메인으로 TXT레코드
타입으로해서 생성한 값을 집어넣습니다.
DNS 설정 적용 버튼을 누른다고 바로 적용되지 않았습니다.
https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.domain.com
으로 들어가 값 적용이 됐는지 확인한 후에 enter을 눌러 다음으로 넘어가도록 합시다.
2-1
을 진행하면 또 값을 발급해주며 반영해달라고 요구합니다.
TXT레코드 설정 시 별도의 줄에 여러값을 입력할 수 있습니다.
이와 같이 반영합니다.
이 와면이 뜨면 성공입니다.
/etc/letsencrypt/live/도메인
쪽으로 이동해보면 파일이 생성된 것을 확인해 볼 수 있습니다. 이 파일의 내용을 조합해야합니다.
DOMAIN은 각 도메인입니다.
cd /etc/letsencrypt/live/
sudo cat DOMAIN/fullchain.pem DOMAIN/privkey.pem > ./DOMAIN.pem
으로 fullchain.pem
과 privkey.pem
의 내용을 조합해 와일드카드 SSL인증서를 생성합니다.
만약 cd /etc/letsencrypt/live/
과정에서 permission denied가 뜬다면 live 디렉토리 접근 권한이 없는 것이므로 수정합니다.
sudo chmod 777 live/
이제 발급받은 SSL인증서를 웹서버나 nginx, haproxy같은 리버스 프록시, 로드밸런서 등에 적용합니다.