반응형
certbot 설치
환경 : CentOS7 x64
yum install certbot
standalone 방식
조건
- webserver의 중지가 필요하다.
- dns에 도메인등록
- dns 에 등록된 IP와 webserver의 라우팅 가능한 IP가 일치해야 한다.
SSL 인증서 발급받기
# certbot certonly --standalone -d test.test.com
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): <메일주소>
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.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: y
Account registered.
메일주소 입력 외 Y눌러 진행하면 된다.
TXT DNS 레코드 방식(dns challenge)
이 방식을 사용할 수 있는 경우를 예로 들면 NAT 환경에서 webserver가 사설 IP를 가져야 하는 경우 dns challenge를 통해 발급 받을 수 있다.
조건
- DNS 레코드를 수정할 수 있는 권한이 있어야 한다.
SSL 인증서 발급받기
# certbot certonly -d test.test.com --manual --preferred-challenges dns
dns-01 challenge for test.test.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.test.test.com with the following value:
HYabwwq-2BJO48jyl6XCeBd6vTXcPkyO65psua0Mumk
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
엔터 눌러 진행하기전에 DNS TXT 레코드 등록을 한다.
TXT DNS 레코드 등록
클라우드플레어를 예로 아래와 같이 등록한다.
레코드 등록 확인을 한다.
# dig _acme-challenge.test.test.com txt
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> _acme-challenge.test-st-patch.sbside.com txt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36883
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_acme-challenge.test.test.com. IN TXT
;; ANSWER SECTION:
_acme-challenge.test.test.com. 300 IN TXT "HYabwwq-2BJO48jyl6XCeBd6vTXcPkyO65psua0Mumk"
등록확인이 완료되면 엔터를 눌러 SSL 인증서를 발급 받는다.
인증서 갱신
LetsEncrypt SSL 인증서는 90일이 유효기간으로 갱신 만료일 30일 이내 부터 갱신을 할 수 있다.
인증서가 갱신되면 webserver를 재시작 할 필요가 있으므로 이와 관련된 설정을 진행한다.
# vim /etc/letsencrypt/renewal/test.test.com
...
[renewalparams]
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
crontab을 예로 한달에 1번 혹은 일주일에 1번 갱신 작업 스케줄을 짜는게 좋다.
# crontab -e
## 매월 1일 오전 9시에
0 9 1 * * certbot renew --quiet
## 매주 일요일 오전 9시에
0 9 * * 7 certbot renew --quiet
반응형
'OS > Linux' 카테고리의 다른 글
Pacemaker 사용해보기[1] - VIP를 이용한 서버 이중화 (0) | 2024.02.23 |
---|---|
DRBD 구축 해보기 (0) | 2024.02.19 |
IOPS(Input/Output Operations Per Second) 계산 방법 (1) | 2024.01.26 |
jq filter를 이용한 json 출력하기 (1) | 2024.01.05 |
Proxmox 환경 VM(CentOS7) 디스크 LVM 사이즈 증가 (0) | 2023.11.30 |