### certbot 을 다운로드 및 실행.
wget https://dl.eff.org/certbot-auto
# certbot-auto 가 설치된 디렉토리에서 아래의 명령어를 실행합니다.
실행 후에는 /etc 폴더내에 letsencrypt 파일이 생성되므로 root 권한 필요합니다.
실행하고 나면 셋중 하나를 선택.
1. 아파치 방식
2. 웹루트방식 => 웹루트폴더에 특정파일을 추가해 도메인을 검증받는 방법.
: 본인이 해당 도메인의 소유자인지 확인
3. 스탠드얼론 방식은 별도의 파일이 웹폴더에 추가되진 않는 장점은 있지만 기존 웹서버를 멈춘 상태에서 해야함.
여기서는 1번방식인 아파치로 설정합니다.
chmod a+x certbot-auto
./certbot-auto
아래는 실행 중 입력(input)받는 것들에 대한 내용입니다.
- 긴급 갱신 및 보안 통지에 사용하기 위해 이메일 입력
...
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):
[이메일 주소 입력]
- 서비스 약관 동의, ACME 서버에 등록여부.
...
(A)gree / (C)ancel: [동의여부 => 여기서는 A 로 동의]
- Let 's Encrypt 프로젝트의 창립 파트너이자 비영리 단체 Certbot을 개발하는 조직? EFF에 관한 이메일을 받을거라면 Y, 아니면 N
...
We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend degital rights.
(Y)es / (N)o : N
- 등록할 도메인을 물음. 여러개를 등록하려면 콤마나 스페이스 등을 이용해 가능
(여기서 설정방식을 웹루트로 했다면 등록한 메일로 인증확인 메일이 날라옵니다. 여기서는 사용안함)
..
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel) : [도메인 입력]
- 생성할 인증 도메인 확인
Which names would you like to activate HTTPS for?
------------------------------
1: [등록한 도메인]
------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel): [도메인 확인하고 해당 숫자를 입력]
- 위의과정을 모두 마치면 아래의 문구와 함께 생성 완료
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://[등록한 도메인]
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=[등록한 도메인]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/[등록한 도메인]/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/[등록한 도메인]/privkey.pem
Your cert will expire on 2018-12-13. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto 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
### 아파치 설정파일 수정
아파치 환경설정을 수정합니다.
vi /etc/httpd/conf/httpd.conf
# 443 환경설정에 다음 추가
<VirtualHost *:443>
...
SSLCertificateFile /etc/letsencrypt/live/[등록한 도메인]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[등록한 도메인]/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/[등록한 도메인]/chain.pem
</VirtualHost *:443>
설정에서 보면 options-ssl-apache.conf 파일을 include 하는데, 해당 파일안에 SSLEngine on 설정이 있습니다.
아파치를 재시작 합니다.
sudo systemctl restart httpd.service
https 로 접근하여 도메인으로 확인합니다.
ACL 정책등으로 인해 443 포트가 막혀 안되는 경우가 있으니 별도 확인이 필요합니다.
### 인증서 갱신 테스트
./certbot-auto renew --dry-run
아래와 같이 실행결과가 출력됩니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/booknme.co.kr.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for booknme.co.kr
Waiting for verification...
Cleaning up challenges
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/booknme.co.kr/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/booknme.co.kr/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations 문구가 나오면 갱신테스트에 성공한 것입니다.
테스트이기 때문에 인증서가 갱신된 것은 아닙니다.
### 자동 인증서갱신 등록
해당 인증서는 사용만료일이 90일 이므로 자동인증할 수 있도록 수정합니다
certbot-auto 파일을 bin 폴더로 이동하여 수시로 사용할 수 잇도록 합니다.
여기서는 해당파일을 root폴더 안에 넣어두었으므로 다음과 같이 명령어 입력하겠습니다.
mv ~/certbot-auto /bin
# 크론탭 설정
매월 1일 새벽 3시 30분에 certbot-auto 를 실행하고 로그를 저장합니다.
vi /etc/crontab
30 3 1 * * root /bin/certbot-auto renew >> /var/log/ssl-renew.log
크론탭 재시작
service crond restart
# 확인
ps -ef | grep cron
'공부 > 프로그래밍' 카테고리의 다른 글
[linux-centos7] gitlab 설치하기 (0) | 2018.10.10 |
---|---|
[python-django] 파일 업로드(CSV파일) 및 파일내용 읽기 (0) | 2018.10.05 |
[네이버 클라우드 플랫폼] 이미지 저장 및 resize, crop 하여 썸네일로 보이기 (0) | 2018.09.06 |
[JPA] @OneToMany 와 @ManyToOne 로 연결된 엔터티, JSON으로 파싱할때 StackOverflowError(@JsonIdentityInfo 로 해결) (0) | 2018.09.04 |
[MySQL] B-Tree 인덱스 (0) | 2018.08.29 |
댓글