Letsencrypt 간략 소개
* HTTPS Everywhere 를 추구하는 비영리 프로젝트
* 스폰서 : Mozilla, Akamai, Cisco, eff, Identrust
* IdenTrust cross-sign됨
* SSL 인증서 100% 무료화 ( 기간 3개월 )
* 인증기간 연장 및인증서 재발급 무료
* 사용편리성 : 콘솔상에서 인증서 발급/갱신/설치/세팅 자동화.
* 멀티도메인 지원, SAN 기능(여러 도메인을 한 인증서로 묶어주는 기능) 지원
서버 상황
- Centos 6.8 64bit
- Apache/2.4.3 (Unix) ( apache 2.2 도 됨 )
- python 2.6.6 -> 2.7.10 으로 업그레이드
( letsencrypt 에서 제공 하는 certbot-auto 스크립트가 있는데 이 스크립트는 python 2.7 이상에서만 됨을 참고 )
Letsencrypt 설치 하기.
정말 간단합니다. 커맨드 바로바로 올려드리겠습니다.
###
yum update
yum install epel-release
rpm -ivh https://rhel6.iuscommunity.org/ius-release.rpm
yum install git python27 python27-devel python27-pip python27-setuptools python27-virtualenv python27-libs
cd /root/
git clone https://github.com/letsencrypt/letsencrypt
여기까지 설치 끝.
### 인증서 발급
cd /root/letencrypt ## 이동
./certbot-auto certonly --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --agree-tos --email XXX@XXXXX.com --webroot -w /home/www/html -d my.mydomain.com
자 여기서 위의 커맨드 중에 수정해야될 부분은
--email XXX@XXXXX.com --webroot -w /home/www/html -d my.mydomain.com
이부분 입니다.
이메일 넣으시고 대강 넣으셔도 되요. 만료 이메일 안받으실려면
webroot 에는 웹돌리시는 소스 도큐멘터리경로 적어주시고.
-d 옵션 뒤에는 도메인을 적어주시면 됩니다.
만약 도메인이 더 있으시다면 -d 을 더 추가해서 입력 하면 됩니다.
-d my.mydomain1.com -d my111.mydomain.com -d my222.mydomain.com
하나 하나 설명내지 상세하게 보면서 진행 하실분들은.
./certbot-auto --apache
치시고 하나씩 진행 하시면 됩니다.
이상 없는 경우에는 위 인증서 발급 명령어만 치시면 바로 발급이 되시는데요
경로 위치는 아래 위치 처럼 live 디렉토리 하단에 있습니다.
/etc/letsencrypt/live/my.mydomain.com/
발급된 인증서 파일을 /etc/letsencrypt/archive 에 있지만 live 에서 archive 하단 파일들을 심볼릭 링크걸어서 사용 되고 있습니다. 키 생성은
cert.pem , chain.pem fullchain.pem , privkey.pem 이렇게 4개!
아파치의 ssl.conf 에서 이런식으로 등록 해주시면 됩니다.
SSLCertificateFile /etc/letsencrypt/live/my.mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/my.mydomain.com/chain.pem
##############################################################
#### 인증서 자동갱신
이 자동갱신이란게 centos 6 에서는 python 2.6.x 밖에 지원 안해서 강제로 2.7 로 올리던가
수동으로 발급 해서 다시 등록 하던 수동 발급을 스크립트로 만들던 해야 합니다.
centos7 사용자는 기본 python 2.7 이상이라 걍 재발급 스크립트만 실행 하면 되죠.
자신의 서버의 python 버전을 확인 해봅시다.
# python -V
기본 centos 6.X 는 최신 업데이트를 해도
2.6.6 으로 밖에 안됩니다.
자 수동으로 파이썬 버전을 올려봅시다.
## 참고로 python 으로 작업 하는게 많으신분들은....하지마세요. 다 맞춰줘야 하는데 개고생같에서 추추천 안드립니다.....
cd /usr/local/src ## 이동
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz ##다운 !
cd Python-2.7.10 ## 이동
./configure && make && make altinstall ## altinstall 이여야 함
error는 없어야 합니다.
자 다음..
ls /usr/bin/python* 치시면
/usr/bin/python
/usr/bin/python2 -> python
/usr/bin/python2.6
/usr/bin/python2.6-config
/usr/bin/python-config -> python2.6-config
/usr/bin/python-pip -> pip
이렇게 보여지실텐데.
먼저 버전 확인 한번 해보죠.
/usr/bin/python -V 과
Python 2.6.6
/usr/local/bin/python2.7 -V
Python 2.7.10
으로 나오면 됩니다.
자 이제 바꿔 치기 할건데요.
mv /usr/bin/python /usr/bin/python_old
cp /usr/local/bin/python2.7 /usr/bin/python
이렇게 바꾸고 난뒤에
python -V 쳤을때
Python 2.7.10 으로 나오면 됩니다.
이제 갱신은 할수 있는데요. 문제는 yum 이 안됩니다.
왜냐하면 centos6.X 는 python 2.6 으로 동작 하는데요 정확한 이유는 몰라요. 2.7 로 박으면
yum 이 안되네요.
이것도 변경 해보죠.
vi /usr/bin/yum 여시고 수정하시면 됩니다
제일 첫번째 줄에
#!/usr/bin/python → #!/usr/bin/python2.6 으로 바꾸시면 됩니다.
python2.6 으로 변경한 이유는
ls /usr/bin/python2.6 칠때
/usr/bin/python2.6 이게 보여지면 됩니다. 2.4 버전에서 진행 하시는분들은 확인후에 그 버전 파일로 수정 하시면 됩니다.
만약 python 원복하실려면
yum reinstall python 치시면 되는데 원복은 아니고 지원받는 최신 버전( python 2.6.6.xxx) 으로 설치 되실겁니다.
그리고 python 모듈인 pip 와 easy_install 을 사용중이신분들 안되실텐데요
해결 될수 있는 아래 링크 하나 올려드릴게요 참조 하시면 됩니다.
http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_pip,_easy_install_%EC%A0%95%EC%83%81%ED%99%94
python 2.7 이상은 자동갱신이 됩니다. 쉬워요.
저는 root 디렉토리에 설치 되었기 때문에 아래 경로가 이런데요. 계정의 홈디렉토리에 있습니다.
/root/.local/share/letsencrypt/bin/letsencrypt renew >> /var/log/letsencrypt/renew.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/my.mydomain.com.conf
-------------------------------------------------------------------------------
The following certs are not due for renewal yet:
/etc/letsencrypt/live/my.mydomain.com/fullchain.pem (skipped)
No renewals were attempted.
letencrypt 인증서는 3개월 동안 유지이니 2개월 조금 지나고 재대로 되는지
눈으로 확인하는건 좀 지나봐야 할것같습니다.
일단 crontab 에 등록은 해놨습니다.
00 5 * * 1 /root/.local/share/letsencrypt/bin/letsencrypt renew >> /var/log/letsencrypt/renew.log
참고링크 :
https://certbot.eff.org/#centos6-apache
https://letsencrypt.org/
'I T > Linux' 카테고리의 다른 글
Centos Swap 파일 만들기 (0) | 2018.09.14 |
---|---|
CentOS6에서 SSH 접근 시도 차단하기 (0) | 2017.10.01 |
ssh-keygen rsa [ 암호 없이 ssh 접속 ] (0) | 2016.01.13 |
리눅스 일반. (0) | 2015.12.04 |
폴더별 용량 확인 (0) | 2015.12.04 |