Certbot: Amazon Linux: ImportError: cryptography.hazmat.bindings.openssl.bindingμ΄λΌλŠ” λͺ¨λ“ˆμ΄ μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 02μ›” 24일  Β·  48μ½”λ©˜νŠΈ  Β·  좜처: certbot/certbot

Amazon Linuxμ—μ„œ 싀행을 μ‹œλ„ν•˜λŠ” λ™μ•ˆ: Linux ip #1 SMP Sat Oct 24 01:31:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Git 컀밋 ν•΄μ‹œ: 6950dbd0708d3ba16b717ad1097332fc37e33f15

λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

[ec2-user<strong i="10">@ip</strong> letsencrypt]$ ./letsencrypt-auto
Checking for new version...
Creating virtual environment...
Installing Python packages...
Requesting root privileges to run letsencrypt...
   sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt --no-self-upgrade
Traceback (most recent call last):
  File "/home/ec2-user/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from letsencrypt.cli import main
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/cli.py", line 21, in <modul
e>
    import OpenSSL
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <modul
e>
    from OpenSSL import rand, crypto, SSL
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 11, in <module>
    from OpenSSL._util import (
  File "/home/ec2-user/.local/share/letsencrypt/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

이것은 2μ›” 8일 ν˜„μž¬ μž‘λ™ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€... κ·ΈλŸ¬λ‚˜ λ¬Έμ œκ°€ λ°œμƒν•œ μœ„μΉ˜λ₯Ό μ°ΎκΈ° μœ„ν•΄ 이전 버전을 μ²΄ν¬μ•„μ›ƒν•˜λ €κ³  ν•  λ•Œ letsencrypt-autoλŠ” 계속 μ΅œμ‹  λ²„μ „μœΌλ‘œ 자체 μ—…κ·Έλ ˆμ΄λ“œν•©λ‹ˆλ‹€!

certbot-auto pyca

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@utdrmac λ‚˜λŠ” μƒˆ μΈμ¦μ„œλ₯Ό λ°°ν¬ν•˜κΈ° 전에 같은 였λ₯˜λ₯Ό λ§Œλ‚¬μŠ΅λ‹ˆλ‹€. κ·€ν•˜μ˜ μ˜κ²¬μ€ μ–‘νŒŒλ₯Ό κ»μ§ˆμ„ λ²—κΈ°κ³  쒅속성을 local/lib/python2.7 κ²½λ‘œμ— λ‹€μ‹œ μ—°κ²°ν•˜μ—¬ μˆ˜μ§‘ν•œ λ‹€μŒ ν•΄ν‚Ή μˆ˜μ •μ— μ˜κ°μ„ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.

ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cryptography
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.0.2.dist-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cryptography-2.0.2.dist-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cffi /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cffi
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cffi-1.10.0.dist-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cffi-1.10.0.dist-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/_cffi_backend.so /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/_cffi_backend.so
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/.libs_cffi_backend /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/.libs_cffi_backend
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope.interface-4.1.3-py2.7-nspkg.pth /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope.interface-4.1.3-py2.7-nspkg.pth
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope.interface-4.1.3-py2.7.egg-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope.interface-4.1.3-py2.7.egg-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope/interface /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/interface

λͺ¨λ“  48 λŒ“κΈ€

λͺ¨λ“  μ—…λ°μ΄νŠΈ.. 저도 같은 λ¬Έμ œμ— μ§λ©΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
μ•„λž˜λŠ” λ‘œκ·Έμž…λ‹ˆλ‹€(ν™˜κ²½ - amazon linux)
μ‹€ν–‰λœ λͺ…λ Ή: ./letsencrypt-auto --help

Checking for new version... Creating virtual environment... Installing Python packages... Installation succeeded. Requesting root privileges to run letsencrypt... sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt --help Traceback (most recent call last): File "/home/ec2-user/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module> from letsencrypt.cli import main File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/cli.py", line 21, in <module> import OpenSSL File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module> from OpenSSL import rand, crypto, SSL File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 11, in <module> from OpenSSL._util import ( File "/home/ec2-user/.local/share/letsencrypt/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

이 μ‹œλ„
sudo ./letsencrypt-auto --help
μœ„μ˜ λͺ…령을 μ‹œλ„ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

sudo μ ‘λ‘μ‚¬λ‘œλ„ λ™μΌν•œ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이게 μ–΄λ–»κ²Œ ν•΄κ²°λλ‚˜μš”?

같은 λ¬Έμ œκ°€ λ°œμƒν•˜κ³  sudoλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

Amazon Linux(Linux ip-172-31-10-255 4.9.75-25.55.amzn1.x86_64 #1 SMP Fri Jan 5 23:50:27 UTC 2018 x86_64)μ—μ„œ μ΅œμ‹  certbot으둜 μ—…λ°μ΄νŠΈν•œ 후에도 이 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. x86_64 x86_64 GNU/λ¦¬λˆ…μŠ€)

/opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography/ μ•„λž˜μ— μ•”ν˜Έν™” νŒ¨ν‚€μ§€κ°€ μ„€μΉ˜λ˜κ³  μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ νŒŒμ΄μ¬μ€ lib64 κ²½λ‘œμ—μ„œ μ°Ύκ³ /μž‘λ™ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 그것을 찾지 λͺ»ν•©λ‹ˆλ‹€. μ•„λž˜μ˜ λͺ¨λ“  κ²½λ‘œλŠ” /lib/ κ°€ μ•„λ‹ˆλΌ /lib64/

이 ν™˜κ²½ rm -rf /opt/eff.org μ™„μ „νžˆ μ œκ±°ν•˜κ³  cert-bot을 λ‹€μ‹œ μ„€μΉ˜ν–ˆμ§€λ§Œ μ—¬μ „νžˆ λ™μΌν•œ 였λ₯˜/λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

` [root@ip-172-31-10-255 venv]# /certbot/certbot-auto --debug renew Error: couldn't get currently installed version for /opt/eff.org/certbot/venv/bin/letsencrypt: 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

@utdrmac λ‚˜λŠ” μƒˆ μΈμ¦μ„œλ₯Ό λ°°ν¬ν•˜κΈ° 전에 같은 였λ₯˜λ₯Ό λ§Œλ‚¬μŠ΅λ‹ˆλ‹€. κ·€ν•˜μ˜ μ˜κ²¬μ€ μ–‘νŒŒλ₯Ό κ»μ§ˆμ„ λ²—κΈ°κ³  쒅속성을 local/lib/python2.7 κ²½λ‘œμ— λ‹€μ‹œ μ—°κ²°ν•˜μ—¬ μˆ˜μ§‘ν•œ λ‹€μŒ ν•΄ν‚Ή μˆ˜μ •μ— μ˜κ°μ„ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.

ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cryptography
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.0.2.dist-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cryptography-2.0.2.dist-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cffi /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cffi
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cffi-1.10.0.dist-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cffi-1.10.0.dist-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/_cffi_backend.so /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/_cffi_backend.so
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/.libs_cffi_backend /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/.libs_cffi_backend
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope.interface-4.1.3-py2.7-nspkg.pth /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope.interface-4.1.3-py2.7-nspkg.pth
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope.interface-4.1.3-py2.7.egg-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope.interface-4.1.3-py2.7.egg-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope/interface /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/interface

@HinchK λ‚˜λ„ 그것에 λŒ€ν•΄ μƒκ°ν–ˆμ§€λ§Œ λ„€, 정말 ν•΄ν‚Ήμž…λ‹ˆλ‹€. λŒ€μ‹  이 μ†”λ£¨μ…˜μ„ ν™•μΈν•˜μ‹­μ‹œμ˜€. https://github.com/certbot/certbot/issues/1680#issuecomment -358728515 μ΅œμ‹  Elastic beanstalkμ—μ„œ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

@HinchK κ°μ‚¬ν•©λ‹ˆλ‹€. 그것은 (μΌμ‹œμ μœΌλ‘œ) λ‚˜λ₯Ό μœ„ν•΄ κ³ μ³€μŠ΅λ‹ˆλ‹€. (AWS)

@HinchK , λ‹Ήμ‹ μ˜ μ†”λ£¨μ…˜μ€ ν›Œλ₯­ν–ˆμŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”.

κ·Έ @HinchK 의 μ†”λ£¨μ…˜μ—μ„œ μ°¨μž„μ€ λ‚΄ AWS Linux μ„œλ²„λ₯Ό μœ μ‚¬ν•˜κ²Œ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

였늘 λ‚΄ μΈμ¦μ„œλ₯Ό μ—…λ°μ΄νŠΈν•˜κ³  certbot이 0.19.0μ—μ„œ 0.21.1둜 μ—…λ°μ΄νŠΈλ˜μ—ˆμ„ λ•Œ κ³ μž₯λ‚¬μŠ΅λ‹ˆλ‹€.

방금 두 번째둜 λ¬Έμ œμ— λΆ€λ”ͺμ³€μŠ΅λ‹ˆλ‹€. certbot이 μΆ©λΆ„ν•œ κΆŒν•œ 없이 μ—…κ·Έλ ˆμ΄λ“œλ₯Ό μ‹€ν–‰ν•  λ•Œ λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ—…λ°μ΄νŠΈκ°€ μžλ™μœΌλ‘œ μ‹€νŒ¨ν•˜κ³  certbot이 μ‹€μ œλ‘œ 싀행을 μ‹œλ„ν•  λ•Œ κ°μ§€λœ 잘λͺ»λœ μƒνƒœμ˜ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ‚¨κΉλ‹ˆλ‹€. 라이브러리 μ„€μΉ˜/μ—…λ°μ΄νŠΈ λ£¨ν‹΄μ—μ„œ 더 λ‚˜μ€ 였λ₯˜ κ°μ§€λŠ” 미래의 ν˜Όλž€μ„ λ°©μ§€ν•˜λŠ” 데 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

@utdrmac 이 μœ„μ— 링크된 μ†”λ£¨μ…˜μ΄ 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€(ν•˜μ§€λ§Œ 루트둜 μ‹€ν–‰ν•΄μ•Ό 함). certbot이 λ°”λ‘œ μ§€κΈˆ(AWS EC2μ—μ„œ) 0.22.0으둜 μ—…κ·Έλ ˆμ΄λ“œν•˜λ €κ³  ν•  λ•Œ λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ AWS λ¦¬μ „μ—μ„œ 이 λ¬Έμ œκ°€ λ‹€μ‹œ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. pipλ₯Ό 톡해 @utdrmac 의 μ„€μΉ˜κ°€ μ €μ—κ²Œ https://github.com/certbot/certbot/issues/1680#issuecomment -358728515

λ‚΄ μΈμŠ€ν„΄μŠ€ 전체에 pip certbot 둀아웃 λ‚΄ 이전 symlink ν•΄κ²° 방법은 μž‘λ™ν–ˆμ§€λ§Œ μ•žμœΌλ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆλŠ” κ½€ 총체적인 ν•΄ν‚Ήμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œμ— λΆ€λ”ͺμ³€λ‹€. λ‚˜λ₯Ό μœ„ν•΄ 그것을 ν•΄κ²° ν•œ 것은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

/opt/eff.org/certbot/venv/local/bin/pip μ•”ν˜Έν™” μΈν„°νŽ˜μ΄μŠ€ μ„€μΉ˜

λ‹€λ₯Έ λͺ¨λ“  것을 μ‹œλ„ν•œ ν›„ @HinchK 의 해킹이 λ‚˜λ₯Ό μœ„ν•΄ μΌν•œ μœ μΌν•œ λ°©λ²•μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œ awls99λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€ - μ§€λ‚œ λ©°μΉ  λ™μ•ˆ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν•˜μ—¬ λͺ¨λ“  것을 μ‹œλ„ν–ˆμ§€λ§Œ λͺ¨λ“  μ†”λ£¨μ…˜μ΄ λ¬Έμ œμ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
@HinchK λ°©μ‹μœΌλ‘œ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

@gmegidish μ†”λ£¨μ…˜μ€ μ €μ—κ²Œ

@HinchK 원샷원킬 ! :-)

@gmegidish λŠ” λ‚¨μžλ‹€!!!
κ°μ‚¬ν•©λ‹ˆλ‹€!!

/opt/eff.org/certbot/venv/local/bin/pip μ•”ν˜Έν™” μΈν„°νŽ˜μ΄μŠ€ μ„€μΉ˜

λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆλ‹€!

@alex , μ—¬κΈ°μ„œ 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ?

ν˜„μž¬ https://github.com/certbot/certbot/blob/master/letsencrypt-auto-source/pieces/dependency-requirements.txt μ—μ„œ μ•”ν˜Έν™” 2.0.2, pyOpenSSL 16.2.0 및 기타 고정을 μ‚¬μš©ν•˜κ³ 

이것이 Amazon Linux에 κ΄€ν•œ 것이라면 https://github.com/pypa/pip/issues/4464인 것 κ°™μŠ΅λ‹ˆλ‹€.

μ°Έμ‘°: @reaperhulk

이봐,

CTRL-F μ›Ήμ—μ„œ 눈으둜 λ‚˜λ₯Ό μœ„ν•΄ μΌν•œ μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

이 λ§ν¬μ—μ„œ @utdrmac은 certbot을 pip와 ν•¨κ»˜ 직접 μ„€μΉ˜ν•©λ‹ˆλ‹€.
https://github.com/certbot/certbot/issues/1680#issuecomment -358728515
λ‚˜λŠ” 적어도 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆλ‹€.

그리고 였, pipλ₯Ό μ‚¬μš©ν•˜μ—¬ certbot ν”ŒλŸ¬κ·ΈμΈμ„ μ„€μΉ˜ν•˜μ—¬ nginx( @bmw κΈ°μ€€ )의 μžλ™ ꡬ성을 κ΄€λ¦¬ν•˜λŠ” 방법도 생각해 λ³΄μ‹­μ‹œμ˜€.
https://github.com/certbot/certbot/issues/1736#issuecomment -165189246

ν–‰μš΄μ„ λΉ•λ‹ˆλ‹€ !

νŽΈμ§‘: Amazon Linux에도 μΈμ¦μ„œλ₯Ό μ„€μΉ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이 문제λ₯Ό λ‹€μ‹œ ν•΄κ²°ν•˜κ³  @eregnier 의 κ²Œμ‹œλ¬Ό 링크에 λŒ€ν•œ κ°„λ‹¨ν•œ 단계λ₯Ό μˆ˜ν–‰ν•˜κ³  λ¨Όμ € μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. 이제 λ‚΄ crontab은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/bin/certbot renew --no-bootstrap --nginx 1> /var/log/cerbot.log 2>&1

λ‚˜λŠ” 였늘 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. @HinchK 의 μ†”λ£¨μ…˜μ€

ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.0.2.dist-info /opt/eff.org/certbot/venv/local/lib/ python2.7/dist-packages/cryptography-2.0.2.dist-info

~에 μ˜ν•΄
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.2.2.dist-info /opt/eff.org/certbot/venv/local/lib/ python2.7/dist-packages/cryptography-2.2.2.dist-info

맀λ ₯으둜 μž‘μš©ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 였늘이 λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€.
Amazon Linux AMI 4.4.30-32.54.amzn1.x86_64의 certbot 0.26.1에 λŒ€ν•œ ν•΄κ²° 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

CD /opt/eff.org/certbot/venv/lib64/python2.7
rmdir μ‚¬μ΄νŠΈ νŒ¨ν‚€μ§€(λ‚΄ κ²½μš°μ—λŠ” 이 디렉토리가 λΉ„μ–΄ 있음)
ln -s dist-packages μ‚¬μ΄νŠΈ νŒ¨ν‚€μ§€

그게 λ‹€μ•Ό, 그것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€.

@smartITNinja μ†”λ£¨μ…˜μ΄ μ €μ—κ²Œλ„ νš¨κ³Όκ°€ μžˆλŠ”μ§€ 확인

Amazon Linux 1 λ˜λŠ” 2에 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? Amazon Linux 2라면 certbot-auto μ΄μƒμ˜ EPEL7 νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•  수 있고 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” 방법은 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-an-instance.html#letsencrypt에 μ„€λͺ…λ˜μ–΄

@smartITNinja @lpkirby
ln dist-packages site-packages ν•˜λ €κ³  ν•  λ•Œ hard link not allowed for directory λ°›μ•˜μŠ΅λ‹ˆλ‹€.

dist νŒ¨ν‚€μ§€λ₯Ό μ‚¬μ΄νŠΈ νŒ¨ν‚€μ§€μ— 정말 μ—΄μ‹¬νžˆ μ—°κ²°ν–ˆμŠ΅λ‹ˆκΉŒ?

@saiday - fwiw - μ•„λ‹ˆμš”, 심볼릭 링크λ₯Ό ν–ˆμŠ΅λ‹ˆλ‹€.

@bmw - ν₯λ―Έ

@bmw μ•„λ§ˆμ‘΄ λ¦¬λˆ…μŠ€ 1

@saiday μ£„μ†‘ν•©λ‹ˆλ‹€. ν•˜λ“œ 링크가 μ•„λ‹Œ "μ†Œν”„νŠΈ 링크"μž…λ‹ˆλ‹€. 이제 μ˜¬λ°”λ₯Έ 단계λ₯Ό ν¬ν•¨ν•˜μ—¬ 주석이 μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”!

/opt/eff.org/certbot/venv/lib64/python2.7

drwxr-xr-x 9 root root  4096 Jul 18 14:14 dist-packages
lrwxrwxrwx 1 root root    13 Jul 18 14:26 site-packages -> dist-packages

κ·Έ ν₯λ―Έ λ‘­κ΅°μš”. AWS λ¬Έμ„œμ˜ 일뢀 μœ„μΉ˜μ—μ„œλŠ” Amazon Linux 2에 EPEL을 μ„€μΉ˜ν•˜λ©΄ μ•ˆ λœλ‹€κ³  λ§ν•˜κ³  μΌλΆ€λŠ” μ„€μΉ˜ 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€.

뭐. λΆˆν–‰νžˆλ„ λ‚˜λŠ” Amazon Linux 2에 λŒ€ν•΄ μΆ©λΆ„νžˆ μ•Œμ§€ λͺ»ν•©λ‹ˆλ‹€. μ œκ°€ 말할 수 μžˆλŠ” 것은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. certbot-auto 보닀 μ΅œμ‹  OS νŒ¨ν‚€μ§€λ₯Ό μ„ ν˜Έν•΄μ•Ό ν•©λ‹ˆλ‹€.
  2. 적어도 Certbot이 μž‘λ™ν•˜λ„λ‘ ν•˜κΈ° μœ„ν•΄ EPEL7 νŒ¨ν‚€μ§€λŠ” ν…ŒμŠ€νŠΈ 쀑에 우리λ₯Ό ν¬ν•¨ν•˜μ—¬ Amazon Linux 2의 μ‚¬λžŒλ“€μ„ μœ„ν•΄ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

@smartITNinja thx, 이것은 λ‚΄ μ•„λ§ˆμ‘΄ EC2μ—μ„œ λ‚΄ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

였늘 Amazon Linux 1 EC2μ—μ„œ μ €λ₯Ό μœ„ν•΄ μΌν•œ @smartITNinja .

건배 πŸ‘

μž‘λ™ν•œ μœ μΌν•œ 것은 @smartITNinja 의 ν•΄ν‚Ήμ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 항상이 λ¬Έμ œμ— λΆ€λ”ͺμΉ©λ‹ˆλ‹€. certbot μŠ€ν¬λ¦½νŠΈλŠ” 이λ₯Ό "캐치"ν•˜κ³  문제λ₯Ό ν•΄κ²°ν•˜κ±°λ‚˜ μœ μš©ν•œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μ œκ³΅ν•˜λ„λ‘ μ—…λ°μ΄νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€. AWS EC2λŠ” μ£Όμš” 배포판이며 Let's EncryptλŠ” μ¦‰μ‹œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κΈ°κ°„.

Amazon Linux AMIμ—μ„œ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

certbot 도컀 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‚¬μš©ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€. λͺ¨λ‘ μ•½ 90μ΄ˆκ°€ κ±Έλ ΈμŠ΅λ‹ˆλ‹€.

dockerκ°€ μ„€μΉ˜λ˜μ–΄ μ‹€ν–‰ 쀑이라고 κ°€μ •ν•©λ‹ˆλ‹€.

docker pull certbot/certbot

docker run -it --rm --name certbot \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
certbot/certbot \
certonly --manual --preferred-challenges dns-01 --agree-tos -d "example.com" -d "*.example.com" --server https://acme-v02.api.letsencrypt.org/directory

μ‚¬μš©ν•˜λŠ” κΈ°λ³Έ AMIμ—μ„œ 이 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ”μ΄ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ΄κ²ƒμ„ν–ˆμŠ΅λ‹ˆλ‹€. (symlinkλŠ” λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€)

sudo rm -Rf /opt/eff.org
sudo /opt/letsencrypt/letsencrypt-auto --help --debug

이제 λ² μ΄μŠ€κ°€ κ³ μ •λ˜μ—ˆμœΌλ―€λ‘œ μ˜ˆμƒλŒ€λ‘œ λͺ¨λ“  μ›Ή μ‚¬μ΄νŠΈμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 방법은 아직 μΈμ¦μ„œκ°€ μ—†κ³  κΈ°λ°˜μ—μ„œλ§Œ μž‘μ—…ν•˜λŠ” κ²½μš°μ— μ’‹μŠ΅λ‹ˆλ‹€.

이미 μΈμ¦μ„œκ°€ μžˆκ±°λ‚˜ κ°±μ‹ ν•΄μ•Ό ν•˜λŠ” 경우:
λ¨Όμ € 잘λͺ»λœ νŒ¨ν‚€μ§€λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

sudo rm -Rf /opt/eff.org

μ‹€ν–‰ 쀑인 λͺ…령에 --debug λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

@gmegidish 덕뢄에 도움 이 λ˜λŠ” μ†”λ£¨μ…˜μ„

  1. unset PYTHON_INSTALL_LAYOUT
  2. sudo rm -rf /opt/eff.org/certbot/
  3. pip install cryptography interface
  4. ./certbot-auto renew -v --debug

/opt/letsencrypt/letsencrypt-auto --help (μž‘λ™ μ—¬λΆ€ ν…ŒμŠ€νŠΈ)

μ—…λ°μ΄νŠΈν•˜λ €λ©΄:
방금 Amazon Linux 2의 κΈ°λ³Έ μ„€μΉ˜λ₯Ό μˆ˜ν–‰ν–ˆμœΌλ©° μ΅œμ‹  certbot이 거의 μ¦‰μ‹œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ μ„€μΉ˜ν•΄μ•Ό ν–ˆλ˜ μœ μΌν•œ 것은 AWS yum repos의 python-virtualenvμ˜€μŠ΅λ‹ˆλ‹€.

Amazon Linux 1의 경우 #6505 및 Amazon Linux 2의 경우 #6506μ—μ„œ 좔적 지원 및 ꢌμž₯ μ„€μΉ˜ κ²½λ‘œμ— μ°¬μ„±ν•˜μ—¬ λ§ˆκ°ν•©λ‹ˆλ‹€.

이것은 νŠΈλ¦­μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€: sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope

이것은 νŠΈλ¦­μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€: sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope

이것은 λ˜ν•œ λ‚˜λ₯Ό μœ„ν•΄ νŠΈλ¦­μ„ν–ˆμŠ΅λ‹ˆλ‹€.

그리고 ... μ΅œμ‹  certbot μ—…λ°μ΄νŠΈκ°€ λ‹€μŒκ³Ό μΆ©λŒν–ˆμŠ΅λ‹ˆλ‹€.

Requesting to rerun ./certbot-auto with root privileges...
Upgrading certbot-auto 0.40.0 to 0.40.1...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
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 7, in <module>
    from josepy import errors, util
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py", line 7, 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

λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope

그리고 그것은 λ‚΄κ°€ λ‹€μ‹œ μΌν•˜κ²Œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€ ... μ•„λ§ˆλ„ μžλ™ μ—…λ°μ΄νŠΈκ°€λ˜μ–΄μ„œλŠ” μ•ˆλ©λ‹ˆκΉŒ?

그리고 그것은 λ‚΄κ°€ λ‹€μ‹œ μΌν•˜κ²Œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€ ... μ•„λ§ˆλ„ μžλ™ μ—…λ°μ΄νŠΈκ°€λ˜μ–΄μ„œλŠ” μ•ˆλ©λ‹ˆκΉŒ?

μ΄λŸ¬ν•œ λ™μž‘μ„ μ›ν•˜λ©΄ ν”Œλž˜κ·Έ --no-self-upgrade λ₯Ό μ‚¬μš©ν•  수 μžˆμ§€λ§Œ λ³΄μ•ˆμ„ μœ„ν•œ λͺ¨λ“  λ³€κ²½ μ‚¬ν•­μ΄λ‚˜ Let's Encrypt의 μ„œλ²„μ™€ ν˜Έν™˜λ˜λ„λ‘ μœ μ§€ν•˜λŠ” λ³€κ²½ 사항을 λͺ¨λ‘ 선택 ν•΄μ œν•  수 μžˆμŒμ„ λͺ…μ‹¬ν•˜μ‹­μ‹œμ˜€.

λ˜ν•œ Amazon Linuxμ—μ„œ ν”Œλž˜κ·Έ 없이 certbot-autoλ₯Ό 처음 μ‹€ν–‰ν•˜λ©΄ λ‹€μŒ λ©”μ‹œμ§€μ™€ ν•¨κ»˜ μ’…λ£Œλ©λ‹ˆλ‹€.

FATAL: Amazon Linux support is very experimental at present...
if you would like to work on improving it, please ensure you have backups
and then run this script again with the --debug flag!

변경될 λ•ŒκΉŒμ§€(https://github.com/certbot/certbot/issues/6505μ—μ„œ 좔적) μ΄λŸ¬ν•œ λ¬Έμ œκ°€ 계속 λ°œμƒν•  κ²ƒμœΌλ‘œ μ˜ˆμƒν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

Ec2 Amazon Linux AMI μΈμŠ€ν„΄μŠ€μš© μ†”λ£¨μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€.

venv에 λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.
/opt/eff.org/certbot/venv/bin/pip2 install cryptography zope interface /opt/eff.org/certbot/venv/bin/pip2 install --upgrade pip
λ‹€μŒμœΌλ‘œ 동기화 lib64/ 및 lib/ 폴더가 ν•„μš”ν•©λ‹ˆλ‹€.
rsync -avz /opt/eff.org/certbot/venv/lib64/python2.7/dist-packages/ /opt/eff.org/certbot/venv/lib/python2.7/dist-packages/

μ‹œν—˜:
/usr/local/bin/certbot-auto certonly --debug --webroot

두 μΈμŠ€ν„΄μŠ€ AMIμ—μ„œ λ‚˜λ₯Ό μœ„ν•΄ μΌν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. =)

κ·Έλ§Œν•œ κ°€μΉ˜κ°€ 있기 λ•Œλ¬Έμ— certbot-auto 슀크립트λ₯Ό ν¬κΈ°ν•˜κ³  λ‹€μŒ 단계에 따라 Amazon Linuxμ—μ„œ μž‘λ™ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

pip install -y python36 python36-devel python36-tools augeas-libs libffi-devel
pip-3.6 install certbot certbot-dns-route53

λ‚˜λŠ” 그것이 ꢌμž₯λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ 그것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€!

그건 κ·Έλ ‡κ³ , Amazon Linux 2μ—μ„œλŠ” νŒ¨ν‚€μ§€ κ΄€λ¦¬μžμ— μžˆμŠ΅λ‹ˆλ‹€.

amazon-linux-extras install epel
yum -y install certbot certbot-dns-route53

해결책은 EPEL을 ν™œμ„±ν™”ν•˜κ³  sudo yum-config-manager --enable epel λ₯Ό μ‹€ν–‰ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λŠ” certbot λ¬Έμ„œ/지침 및 aws λ¬Έμ„œμ—μ„œ λͺ¨λ‘ μ–ΈκΈ‰λ©λ‹ˆλ‹€.

  1. (aws λ¬Έμ„œ) https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-ami.html -> "Certbot μ„€μΉ˜ 및 μ‹€ν–‰"으둜 슀크둀 -> 1단계
  1. (certbot λ¬Έμ„œ) https://certbot.eff.org/lets-encrypt/centosrhel7-other , 2단계(EPEL μ €μž₯μ†Œ ν™œμ„±ν™”)

λ‚΄ μ„œλ²„μ˜ certbot-auto μŠ€ν¬λ¦½νŠΈκ°€ μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜μ—ˆκ³ (μ΄λ ‡κ²Œ ν•  쀄 λͺ°λžκ³  이제 --no-self-upgrade ν”Œλž˜κ·Έμ— λŒ€ν•΄ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€) "ImportError: No module named cryptography" λ¬Έμ œκ°€ λ‹€μ‹œ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

https://aws.nz/best-practice/letsencrypt-amazon-linux/μ—μ„œ μž‘λ™ν•˜λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰