pyopenssl 모듈이 누락 된 letsencrypt에 대한 certbot


10

LetsEncrypt에 대한 CertBot 설정에 도움이 필요합니다

Python 2.7을 사용하여 CentOS 7에서 실행 중입니다.

certbot을 실행하면 다음 오류가 발생합니다.

[root@li86-193 frappe-bench]#certbot certonly --manual

Traceback (most recent call last):
  File "/usr/bin/certbot", line 7, in <module>
    from certbot.main import main
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 10, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 31, in <module>
    requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 112, in inject_into_urllib3
    _validate_dependencies_met()
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 147, in _validate_dependencies_met
    raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.

[root@li86-193 frappe-bench]# pip show certbot
Name: certbot
Version: 0.11.1
Summary: ACME client
Home-page: https://github.com/letsencrypt/letsencrypt
Author: Certbot Project
Author-email: client-dev@letsencrypt.org
License: Apache License 2.0
Location: /usr/lib/python2.7/site-packages
Requires: ConfigArgParse, configobj, zope.component, pytz, setuptools, cryptography, zope.interface, pyrfc3339, mock, parsedatetime, six, acme, PyOpenSSL

[root@li86-193 frappe-bench]# pip show pyopenssl
Name: pyOpenSSL
Version: 16.2.0
Summary: Python wrapper module around the OpenSSL library
Home-page: https://pyopenssl.readthedocs.io/
Author: Hynek Schlawack
Author-email: hs@ox.cx
License: Apache License, Version 2.0
Location: /usr/lib/python2.7/site-packages
Requires: six, cryptography

도와주세요

감사합니다


게시물을 읽을 수 있도록 수정하고, 역 추적이 모두 엉망진창으로 해결되었습니다. 또한 certbot을 설치 한 방법, 지금까지 작동하도록하기 위해 수행 한 작업 및 실제로 이유를 이해하는 데 도움이되는 정보를 포함하십시오. 이 오류가 발생합니다.
Ginnungagap

virtualenv를 사용하는 솔루션에 대한 나의 의견을 참조하십시오
Danie

답변:


7

CentOS / RHEL 시스템에 certbot을 수동으로 설치하지 마십시오. 그것은 단지 큰 혼란을 만듭니다. 대신 EPEL에서 설치하십시오.

yum install epel-release
yum install certbot

1
나는 epel에서 설치했는데 여전히 같은 문제를 겪고 있습니다
chrismarx

7
EPEL certbot 패키지를 실행하고이 문제를 해결했습니다. 내 시스템의 다른 것이 '요청'라이브러리를 최신으로 업데이트했지만 (이 문서 작성 당시 2.13.0) certbot에 대한 종속성으로 설치된 RPM은 2.6.0입니다. pip list 2>/dev/null | grep requests및의 버전을 비교하십시오 rpm -q python-requests --queryformat '%{VERSION}\n'. 다른 경우을 사용해보십시오 pip install --upgrade --force-reinstall 'requests==2.6.0'.
Alan Ivey

4

지난 2 개월 동안 2 개의 별도 Centos7 시스템에서 동일한 문제가 두 번 발생했습니다. 이것이 나를 위해 일한 것입니다.

  • yum remove pyOpenSSL [epel을 통해 설치된 certbot을 제거합니다]
  • yum install openssl-devel python-devel [실제로 필요할 수도 있고 아닐 수도 있습니다]
  • 핍 설치 certbot
  • pip install certbot-apache

이 단계를 완료 한 후 certbot으로 인증서를 성공적으로 갱신 할 수있었습니다.


1
이것은 효과가 있었다. urllib3은 설치된 pip와 yum이 설치된 pyOpenSSL 버전간에 혼동됩니다. yum 패키지를 제거하고 pip로 설치하면이 문제가 해결됩니다.
scoota269

처음 세 명령을 적용한 후 다음과 같은 오류가 발생합니다. UnknownExtra: requests 2.6.0 has no such extra feature 'security'실행할 때$ certbot certonly ...
Pathros

3

같은 문제가 발생합니다. python venv를 사용하여 pip를 사용하여 certbot을 작동시킬 수있었습니다.

단계 : virtualenv 설치

pip install virtualenv --upgrade

virtualenv 생성

virtualenv -p /usr/bin/python2.7 certbot

certbotvirtualenv를 활성화하십시오

. /root/certbot/bin/activate

프롬프트가 다음과 같이 바뀔 수 있습니다

(certbot) [root@hostname ~]#

그런 다음 pip install certbot

pip install certbot

완료되면 virtualenv에서 certbot명령을 테스트 할 수 certbot있지만 cron을 사용하여 certbot 갱신을 설정하려는 경우에는 실용적이지 않습니다. 가상 환경을 비활성화하고

(certbot) [root@hostname ~]# deactivate

이제 certbot 명령을

/root/certbot/bin/certbot

2

이것은 나를 위해 일하는 것 같습니다.

여기에서 rpm을 얻으십시오 : http://rpm.pbone.net/index.php3/stat/4/idpl/31446026/dir/centos_7/com/pyOpenSSL-0.15.1-1.el7.noarch.rpm.html

wget ftp://ftp.muug.mb.ca/mirror/centos/7.2.1511/cloud/x86_64/openstack-mitaka/common/pyOpenSSL-0.15.1-1.el7.noarch.rpm
sudo rpm -Uvh pyOpenSSL-0.15.1-1.el7.noarch.rpm
sudo yum install certbot

"ImportError : 'pyOpenSSL'모듈에 필요한 기능이 없습니다. v0.14 이상으로 업그레이드하십시오." 나는이 문제가 발생하여 결국 'pyOpenSSL-0.15.1-1.el7.noarch.rpm'설치하여 해결 한
kai.fantasy을

2

올바른 수정 사항은 다음과 같습니다.

mv /usr/lib64/python2.7/site-packages/OpenSSL /usr/lib64/python2.7/site-packages/pyOpenSSL

cnritng frim github에게 감사합니다.


마술을 바로했다.
j4hangir

1

yum설치된 패키지를 통해 패키지를 혼합하지 마십시오 pip. 올바른 수정은 pip 패키지를 제거하고에서 모든 것을 설치하는 것입니다 yum. 여기에 설명했습니다 .

certbot을 실행하기 위해 CentOS 7에서 최신 pyOpenSSL이 필요하지 않습니다!

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

0

0.9.3에서도 같은 문제가있었습니다. nginx 플러그인 설치로 인해 발생했습니다.

작업중인 설치를 쉽게 재현 할 수 있습니다.

docker run -it --rm centos : centos7 bash yum -y 설치 epel-release yum -y 설치 certbot certbot -h


해결 방법이 있습니까?
chrismarx

문제가 어디에 있는지 모릅니다. CentOS를 다시 설치했고 지금 작동했습니다. (
cs378

0

그냥 실행하여 작동하게

sudo pip install pyOpenSSL==0.14.0

0.13 버전을 제거하고 0.14를 설치 한 다음 certbot이 정상적으로 작동했습니다.


나는 다음을 얻는다 :ERROR: Cannot uninstall 'pyOpenSSL'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Pathros

0

epel 소스의 버전이 너무 오래된 것 같습니다. yum 버전의 certbot을 제거하고 pip를 설치할 수 있습니다


-4

대신 certbot, letencrypt 클라이언트가 문제를 해결했습니다.

다른 고객을 제거 할 수 있습니다

pip uninstall certbot
pip uninstall pyopenssl

그런 다음 letsencrypt를 설치하십시오.

pip install letsencrypt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.