1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

Let's Encrypt_openssl.so: undefined symbol: OPENSSL_sk_num错误解决

Let's Encrypt会自动安装在用户宿主目录~/.local/下,今天在续期证书时报错:

Creating virtual environment...  Installing Python packages...  Installation succeeded.  Traceback (most recent call last):    File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>      from certbot.main import main    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 13, in <module>      from acme import jose    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/jose/__init__.py", line 37, in <module>      from acme.jose.interfaces import JSONDeSerializable    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/jose/interfaces.py", line 9, in <module>      from acme.jose import util    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/jose/util.py", line 5, in <module>      import OpenSSL    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>      from OpenSSL import rand, crypto, SSL    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/rand.py", line 12, in <module>      from OpenSSL._util import (    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/_util.py", line 6, in <module>      from cryptography.hazmat.bindings.openssl.binding import Binding    File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>      from cryptography.hazmat.bindings._openssl import ffi, lib  ImportError: /root/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: undefined symbol: OPENSSL_sk_num

原因是pip编译安装相应模块时调用到系统的openssl库,而系统openssl不支持OPENSSL_sk_num

由于我之前已经编译过新版的openssl放在/usr/local/openssl下,将第一步自动安装上的openssl-devel包删除,然后pip重新安装cryptography、pyopenssl即可。注意:需先清除安装缓存目录,否则安装时不会重新编译。

yum remove openssl-devel  cd ~/.local/share/letsencrypt/bin/  pip uninstall cryptography pyopenssl -y  pip install --upgrade pip  rm -rf ~/.cache/  pip install cryptography pyopenssl  ldd ~/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so

此时已经链接到编译的openssl库上,这样再执行命令便不会报错。

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com/post/5270.html,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:高级教程 浏览: