티스토리 뷰
개인 프로젝트를 수행하면서 무료로 사용할 수 있는 SSL인증서에 대해서 조사하였으며,
Let`s Encrypt SSL 인증서 발급하여 적용하기로 결정하였다.
Let’s Encrypt는 일반의 이익을 위해 실행되는 무료, 자동화된 개방형 CA입니다. ISRG(Internet Security Research Group)에서 제공하는 서비스입니다. 웹 사이트에 대해 SSL/TLS(HTTPS)를 가장 사용자 친화적인 방법으로 무료로 활성화하기 위해 필요한 디지털 인증서를 제공합니다. 우리는 더 안전하고 프라이버시를 존중하는 웹을 만들고 싶기 때문에 이 작업을 합니다.
* 출처 : Let`s Encrypt SSL 공식사이트[바로가기]
Let`s Encrypt SSL 인증서 발급은 아래 3가지 방식이 존재합니다.
그중, dns 를 이용한 방식으로 진행하였습니다.
- dns
- webroot
- standalon
Let 's Encrypt에서 TLS / SSL 인증서를 얻기위한 EFF의 Certbot 도구의 공식 빌드 Docker Image를 제공해주고 있다.
아래 명령어를 통해 간편하게 발급 및 인증절차를 수행하여, 아래 정보를 획득한다.
- DNS TXT
- Certbot Verify Key
* 도메인 : sample.com
1.인증서 발급요청
docker run -it --rm --name certbot -v '/etc/letsencrypt:/etc/letsencrypt' -v '/var/lib/letsencrypt:/var/lib/letsencrypt' certbot/certbot certonly -d *.sample.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
2.인증서발급 진행
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [이메일주소]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Account registered.
Requesting a certificate for *.sample.com
Performing the following challenges:
dns-01 challenge for sample.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
-- DNS TXT 값을 할당받으며 아래와 같다.
-- _acme-challenge.sample.com
_acme-challenge.sample.com with the following value:
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
- 인증절차를 정상적으로 수행한다면, 아래와 같이 인증키를 발급받게 된다.
[Certbot Verify Key]
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
위의 절차까지 진행 되면, 아래의 정보를 획득하며, DNS TXT 레코드를 추가한다.
* DNS설정이 완료될때까지 대기 후, 다음 단계로 넘어가야한다.
만약 실수로 Enter로 넘겼다면, [인증서 발급절차] 명령어를 수행하면
본 단계부터 다시 시작할 수 있다.
- DNS TXT
- _acme-challenge.sample.com
- Certbot Verify Key
- [Certbot Verfy Key]
DNS 설정 후, dig 명령어를 통해, 정상적으로 바로 보는지 확인 한다.
# dig +short -t txt _acme-challenge.sample.com
bash: dig: command not found
# yum -y install bind-utils
# dig +short -t txt _acme-challenge.sample.com
"[Certbot Verfy Key]"
인증서 발급 완료
- 아래 경로에 인증서 발급되었음을 확인 한다
- /etc/letsencrypt/lives/
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/lives/sample.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/sample.com/privkey.pem
Your certificate will expire on 2021-06-21. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Let`s Encrpyt 인증서 발급 후, Container SSL 인증서 적용은
아래 링크를 참고하여 설정 가능합니다.
[Docker] Container SSL인증서 - Let`s Encrypt 적용
참고.
- 나무위키 - Let`s Encrypt :: namu.wiki/w/Let's%20Encrypt
- Docker Hub :: hub.docker.com/r/certbot/certbot
'프로그래밍 > ETC' 카테고리의 다른 글
맥북 크롬 및 사파리 스크롤바 표시 방법 (0) | 2021.08.16 |
---|---|
공공데이터 API - SERVICE_KEY_IS_NOT_REGISTERED_ERROR 해결 방법 (0) | 2021.07.29 |
[VSCODE] 원격지서버 설정 (0) | 2021.03.20 |
[Encode] 문자열-아스키코드/유니코드 (0) | 2017.04.30 |
[Etc] ANSI 파일 한글 깨짐 (0) | 2015.07.08 |