아마존 리눅스에 Let’s Encrypt 인증서를 설치하는 작업을 진행했습니다. 웹서버는 Nginx 였고, 인증서 설치작업은 크게 어렵지 않습니다.
Certbot 설치
다운로드 : curl -O https://dl.eff.org/certbot-auto 실행권한 : chmod +x certbot-auto 파일이동 : sudo mv certbot-auto /usr/local/bin/certbot-auto
Nginx 중지
웹서버중지 : sudo service nginx stop
인증서 설치
인증서 설치 : sudo /usr/local/bin/certbot-auto certonly --debug --standalone -d <도메인> 웹서버 시작 : sudo service nginx start
인증서 갱신 (리뉴얼)
웹서버 중지 : sudo service nginx stop 인증서 갱신 : sudo /usr/local/bin/certbot-auto certonly --debug renew 웹서버 시작 : sudo service nginx start
인증서 자동갱신
크론탭편집 : sudo crontab -e 작업추가 : 6 5,10 * * * /usr/local/bin/certbot-auto renew --renew-hook "sudo service nginx restart"
오류해결
Lets’s Encrypt 설치 및 갱신 시 오류
Traceback (most recent call last): File "/opt/eff.org/certbot/venv/bin/letsencrypt", line 7, in <module> from certbot.main import main File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py", line 10, in <module> import josepy as jose File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/__init__.py", line 44, in <module> from josepy.interfaces import JSONDeSerializable File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py", line 8, in <module> from josepy import errors, util File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py", line 4, in <module> import OpenSSL File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module> from OpenSSL import crypto, SSL File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/crypto.py", line 12, in <module> from cryptography import x509 ImportError: No module named cryptography
원인
python 2.7 버전에서 패키지 path 문제
해결
python 3.6 버전을 설치하고, python 3.6 으로 certbot 재설치하면 이상없이 작동.
파이썬3.6설치 : sudo yum -y install python36 python36-pip python36-libs python36-tools python36-virtualenv CERTBOT 설치 : sudo /usr/bin/pip-3.6 install -U certbot NGINX 모듈 설치 : sudo /usr/bin/pip-3.6 install certbot-nginx 인증서 갱신 : sudo /usr/local/bin/certbot renew --debug
아파치 일때는 certbot-nginx 대신 certbot-apache 로 넣어주면 됩니다.
Warning: file_get_contents(domain/mp3play.online.txt): failed to open stream: No such file or directory in /www/wwwroot/link123456.online/getlink/index.php on line 27