/
Amazon Linux AMI 에서 letencrypt certbot 으로 SSL 인증서 발급 에러

Amazon Linux AMI 에서 letencrypt certbot 으로 SSL 인증서 발급 에러

ImportError: No module named cryptography.hazmat.bindings.openssl.binding

증상

아마존 리눅스에서 certbot 실행시 "ImportError: No module named cryptography.hazmat.bindings.openssl.binding" 에러가 발생하며 발급 중지

$  cat /etc/system-release

Amazon Linux AMI release 2017.09
$ ./certbot certonly --debug


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 41, 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 rand, crypto, SSL
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 12, in <module>
    from OpenSSL._util import (
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
ImportError: No module named cryptography.hazmat.bindings.openssl.binding


조치

/opt/eff.org/certbot/venv/lib64/python2.7/site-packages/ 에 sitecustomize.py 를 만들고 다음 내용 추가

$ echo -e "import site\nsite.addsitedir('/opt/eff.org/certbot/venv/lib64/python2.7/dist-packages')" > /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/sitecustomize.py


certbot 재실행

$ ./certbot-auto certonly --debug 


Ref



UnicodeDecodeError: 'ascii' codec can't decode byte

증상

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 330: ordinal not in range(128)


조치

설정 파일에 Non-Ascii 문자가 포함되어서 발생하며 GNU iconv 를 사용하여 설정 파일을 ASCII 로 강제 변환해서 처리

설정 파일에 한글 주석이 있는 경우에도 발생하므로 한글 주석을 삭제하거나 영어로 작성한다..

for i in sites-enabled/*.com; do echo $i; iconv -f UTF-8 -t US-ASCII//TRANSLIT -o $i.txt $i;done    



Ref


Related content

Java 에서 ValidatorException 등 인증서 관련 에러 해결 - keystore에 SSL/TLS 인증서를 import 하기
Java 에서 ValidatorException 등 인증서 관련 에러 해결 - keystore에 SSL/TLS 인증서를 import 하기
More like this
SELinux 때문에 Let's encrypt 에서 발급한 SSL 인증서를 읽지 못할때
SELinux 때문에 Let's encrypt 에서 발급한 SSL 인증서를 읽지 못할때
More like this
Java PKIX path building failed: 에러 해결
Java PKIX path building failed: 에러 해결
More like this
DNS TXT Record 로 Let's Encrypt SSL 인증서 발급 받기
DNS TXT Record 로 Let's Encrypt SSL 인증서 발급 받기
More like this
Java 의 SSLHandshakeException 문제 해결
Java 의 SSLHandshakeException 문제 해결
More like this
git 에서 https 로 연결시 "error: Protocol https not supported or disabled in libcurl while accessing https://github.com/" 에러 처리
git 에서 https 로 연결시 "error: Protocol https not supported or disabled in libcurl while accessing https://github.com/" 에러 처리
More like this