Let's Encrypt Wildcard 인증서 발급하기 - Amazon Linux 2

0. 환경

OS : Amazon Linux 2
Goal : Amazon Linux 2에서 Wildcard SSL 인증서 발급받기

1. SSL 인증서를 무료로 사용하기 위해 Let's Encrypt의 인증서를 발급
2. 그 중 Wildcard SSL 인증하는 방법


1. yum 세팅

[yum repository 추가]
1
2
3
sudo wget ---no-parent -'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
sudo yum-config-manager --enable epel*
cs

[확인 방법]
1
sudo yum repolist all
cs


2. SSL 발급

1
2
sudo yum install -y certbot python2-certbot-apache
sudo certbot certonly --manual -"*.dwer.kr" -d dwer.kr  --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
cs

-d 옵션에 "dwer.kr"과 "*.dwer.kr"을 넣음으로써 Zone Apex(루트 도메인), Sub Domain 모두 적용할 수 있는 인증서를 발급할 수 있다. (선택)

그 후 TXT 레코드 인증 2회를 성공하면 인증서 발급이 완료가 된다.

[TXT 레코드 인증 화면]
진행 방식 : 첫번째 _acme-challenge TXT 레코드를 DNS 서버에 라이브 반영 > 엔터입력 >  두번째 _acme-challenge TXT 레코드를 DNS 서버에 추가로 라이브 반영 > 엔터입력

* DNS 서버(해당 도메인의 네임서버)에서 주어진대로 TXT 레코드를 추가해야 한다.
* 두 개의 TXT 레코드는 별개로 취급해야 함 (처음 인증한 TXT 레코드 값을 지우고 두번째 TXT 레코드를 그 자리에 덮어쓰면 안됨. TXT 레코드는 새로 추가해야 함)
* 발급시마다 매번 TXT 레코드값이 변경됨


[확인 방법]
/etc/letsencrypt/live/도메인명 폴더를 확인한다.
cert.pem, chain.pem, fullchain.pem, privkey.pem이 있어야 함.


3. 갱신

--manual dns-01 로 인증서를 발급받을 경우 자동 갱신이 불가능하다.
(sudo certbot renew 불가능)
> 수동으로 다시 SSL 인증서를 발급받는다
(sudo certbot certonly --manual -d "*.dwer.kr" -d dwer.kr  --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory)

letsencrypt는 인증서를 발급 후 3개월이 지나면 만료된다.
3개월에 한번씩 꼭 수동으로 재갱신 해야한다.

수동으로 재갱신 할때마다 TXT 레코드 값이 바뀐다.
재갱신시 기존 _acme-challenge TXT 레코드는 지워야 한다.


4. 참고

실제 Wildcard 인증서 발급 화면


[레퍼런스]
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html

댓글