https 를 하기 위해서는 인증서가 필요하고 인증서는 발급기관을 통해서 발급을 받아야 한다.
유료이고.. 가격은 각 기관마다 다르다.
무료로 사용하기 위해서는
openssl 을 이용하면 되는데.. 이건 발급기관이 자기 자신..
무료로 인증서를 제공하는 기관이 있다.
Let’s Encrypt 라고.. (https://letsencrypt.org/ko/)
https의 활성화를 위해 인증서를 무료로 발급하는 공익기관으로 모질라, 시스코, 크롬, 페이스북 등이 후원하고 있다.
아쉽게도 유효기간이 3개월이다.
3개월마다 재 인증을 해야 한단다.
centos7 에 certbot 을 이용해서 letsencrypt 인증서를 발급받고
자동으로 인증서를 갱신하도록 적용했다.
* certbot 설치
yum install epel-release (certbot repository 설치)
yum install certbot
yum install python2-certbot-apache
를 설치한다.
* 인증서 발급
certbot –apache 로 인증서 발급 받는다.
- 최초 1번 관리자 email 등록 하고
- 뉴스, 캠페인 안내 받을래?? (n)
- httpd 에 등록된 servername list 중 원하는거 하나 선택
- 자동으로 https 로 redirect 구성할까? (y)
* 인증서 확인 및 config 수정
/etc/letsencrypt/live 안에 선택한 domain 위치로 이용.
- cert.pem
- chain.pem
- fullchain.pem
- privkey.pem
총 4개 파일 확인
/etc/httpd/conf.d/ssl.conf 내용 중에
Listen 443 이 부분 확인
<VirtualHost _default_:443> 을 <VirtualHost *:443> 으로 변경
DocumentRoot 을 기본 root 로 수정
ServerName 을 main domain:443 으로 수정
SSL Engine on 이 부분 확인
그리고 redirect 설정
/etc/httpd/conf/httpd.conf 안에 해당 servername 에 대해 virtualhost 확인
RewriteEngine on
RewriteCond %{SERVER_NAME} = domain(인증받은 domain)
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_RUI} [END,NE,R=permanent]
내용을 확인하고
include 를 통해 새롭게 추가된 virtualhost 안에
SSLCertificateFile /etc/letsencrypt/live/인증서 domain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/인증서 domain/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/인증서 domain/chain.pem
이렇게 인증서 file link 된 것을 확인한다.
systemctl restart httpd 로 httpd 재 시작.
* 인증서 갱신 TEST
certbot renew –dry-run
을 실행해서 congratulation 이라는 문구가 나오면 성공 !!
* 인증서 갱신 자동화
linux 의 cron tab 으로 인증서 갱신 명령어를 주기적으로 실행한다.
crontab -e
30 0,12 * * * certbot renew
분 시 요일 일 월 명령어
해서 매일 0시, 12시 30분에 certbot renew 를 실행해라..
실제 저 명령어를 실행해 보면
아직 유효기간이 남았다고 skip 한다.
이거 봐서는 유효기간이 되면 알아서 갱신을 시도하는 듯 하다.
systemctl restart crond (crontab 재 시작)
systemctl status crond
댓글 없음:
댓글 쓰기