自用笔记 | Python与Openssl相关问题修复

这篇具有很好参考价值的文章主要介绍了自用笔记 | Python与Openssl相关问题修复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:本文自用系统CentOS7,请根据个人问题情况适当调整解决办法命令


一、问题描述

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

警告:pip配置了需要TLS/SSL的位置,但是Python中的SSL模块不可用。


二、问题分析

Python版本与Openssl版本需要相对匹配。
Python3.7之后的版本,依赖的Openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl,Linux自带的Openssl版本过低。可能是当前Openssl版本过低。

三、解决方案

1.查看当前Openssl版本

openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017
当前openssl版本为1.0.2k-fips ,然而对于安装Python 3.10.11来说,Openssl的版本过低,因此需要更新Openssl的版本才能满足要求。

2.更新Openssl

(1)确保您的系统已更新

#系统更新
sudo yum update

(2)安装依赖

#安装依赖
yum install gcc libffi-devel zlib* openssl-devel

如若部分依赖未安装成功,请单独安装重试

(3)下载源码包

下载合适版本的源码包

#下载合适的版本包
wget https://www.openssl.org/source/openssl-3.0.1.tar.gz

(4)解压源码包

#解压
tar -zxvf openssl-3.0.1.tar.gz

(5)进入解压后的目录

进入解压后的文件目录,切记一定要进入该目录才能继续执行后续命令

#进入文件目录
 cd openssl-3.0.1

(6)配置编译选项

其中--prefix是指定安装目录的,shared zlib库是在安装时寻找zlib库依赖的

#配置编译选项
./config --prefix=/usr/local/openssl

(7)编译安装

#编译安装
make && make install

(8)解决安装完还是旧版本

#查看当前Openssl版本
openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017

发现还是旧版本!


①进入程序目录,测试新安装的Openssl
#运行
cd /usr/local/openssl/bin
./openssl

出现报错
./openssl: error while loading shared libraries: libssl.so.3:
cannot open shared object file: No such file or directory

查看目录/usr/local/openssl/lib64

#查看目录/usr/local/openssl/lib64
ls /usr/local/openssl/lib64

发现有libssl.so.3库文件,但是openssl程序却找不到,考虑是路径问题。
openssl程序会去 /usr/lib路径下去寻找库文件。

②拷贝Openssl库文件
#拷贝Openssl库文件到/usr/lib
cp -r /usr/local/openssl/lib64/* /usr/lib
③更新动态链接库
#更新动态链接库
ldconfig
④更新Openssl软链接
# 备份旧版openssl
mv /usr/bin/openssl /usr/bin/openssl.bak-$(date +%m%d)
 
# 新版openssl软链接到旧openssl位置
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
 
# /etc/ld.so.conf 文件记录了编译时使用的动态链接库的路径,告诉链接器去哪个路径下寻找链接时需要用到的库,如果找不到,就会提示链接错误。
echo "/usr/local/openssl/lib">>/etc/ld.so.conf
 
# ldconfig 命令用于在默认搜寻目录 /lib 和 /usr/lib 以及动态库配置文件 /etc/ld.so.conf 内所列的目录下,搜索出可共享的动态链接库。
ldconfig

(9)重新查看当前Openssl版本

#重新查看当前Openssl版本
openssl version

OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
当前Openssl版本为3.0.1 ,已满足Python 3.10.11的要求。


3.重新编译Python

(1)安装依赖

#安装编译工具和Python开发工具
sudo yum install gcc python3-devel

(2)下载源代码包

下载Python 3.10.11的源代码包

#下载Python 3.10.11的源代码包
wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

(3)解压源代码包

#解压源代码包
tar -zxvf python-3.10.11.tgz

(4)进入解压后的目录

#进入解压后的目录
cd python-3.10.11

(5)配置编译选项

#配置编译选项
./configure --prefix=/usr/local/python3.10 --with-openssl=/usr/local/openssl

(6)开始编译安装

#编译安装
make && make install

(7)清理不必要的文件

删除编译过程中生成的一些临时文件和目标文件文章来源地址https://www.toymoban.com/news/detail-844493.html

#清理编译临时文件
make clean

(8)设置环境变量

#设置环境变量
echo "export PATH=/usr/local/python3.10/bin:\$PATH" >> ~/.bashrc
#更新环境变量
source ~/.bashrc

(9)更新Python3软链接

①删除旧链接
rm -rf /usr/bin/python3
②创建新链接
ln -s /usr/local/python3.10 /usr/bin/python3

(10)检查Python版本

python -V

到了这里,关于自用笔记 | Python与Openssl相关问题修复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Centos7修复OpenSSL 安全漏洞 (CVE-2022-0778)

    centos7环境下OpenSSL拒绝服务漏洞(CVE-2022-0778) 漏洞影响范围: OpenSSL1.0.2 OpenSSL1.1.1 OpenSSL3.0 OpenSSL拒绝服务漏洞(CVE-2022-0778):该漏洞是由于OpenSSL中的BN_mod_sqrt()函数存在解析错误,由于证书解析发生在证书签名验证之前,因此任何解析外部提供的证书场景都可能受到拒绝服务攻击

    2024年02月12日
    浏览(29)
  • 关于OpenSSL1.0.2k-fip升级修复漏洞

    近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSL 安全漏洞(CNNVD-202207-242、CVE-2022-2274)情况的报送。成功利用此漏洞的攻击者,可造成目标机器内存损坏,进而在目标机器远程执行代码。OpenSSL 3.0.4版本受漏洞影响。目前,OpenSSL官方已发布新版本修复了漏洞,请用户及时确认

    2024年01月20日
    浏览(40)
  • 漏洞补丁修复之openssl版本从1.1.1q升级到1.1.1t以及python版本默认2.7.5升级到2.7.18新版本和Nginx版本升级到1.24.0

    ​ 一、Openssl升级 1、查看Openssl安装的版本 2、查看Openssl路径 3、上传openssl安装包到服务器:openssl-1.1.1t.tar.gz,并且解压,安装: make完成图示: 此时版本还是1.1.1q的动态库: 4、更新使用最新版openssl库: 5、重新加载动态链接库

    2024年01月21日
    浏览(31)
  • 关于pycharm在安装requests模块时出现:urllib3 v2.0 only supports OpenSSL 1.1.1+

    原因:是由于urllib3模块的版本过高导致的 解决办法: 1.file-setting-Project:project-python interpreter 2.点击右侧+号,在搜索框中输入urllib3 3.在左侧选中urllib3后,在右下方的specify verison下拉框中选择1.26版本 4.左下角选择install package即可        

    2024年02月12日
    浏览(60)
  • 学习笔记:CentOS 7安装openssl 1.1.1

    CentOS7中预装了openssl 1.0.2版本,该版本不支持sm2、sm3、sm4等国密算法,可以安装openssl 1.1.1的版本来替代原预装的版本。 一、官网下载 https://www.openssl.org/source/ 现在是1.1.1u版,下载openssl-1.1.1u.tar.gz文件,并上传到CentOS7服务器中,我以user用户登录,放在/home/user/目录下。 二、卸

    2024年02月10日
    浏览(32)
  • pip cryptography 遇到的 OpenSSL 问题

    pip install -r requirements.txt 遇到 bug           一眼抓 OpenSSL,如果是Windows 64 位系统,下载“Win64 OpenSSL”安装程序。 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com) https://slproweb.com/products/Win32OpenSSL.html         直接安装 openssl 安装包是最快捷方便的方法

    2024年02月09日
    浏览(64)
  • 处理conda安装工具的动态库问题——解决记录 libssl.1.0.0 系统中所有openssl位置全览 whereis openssl

    处理conda安装工具的动态库问题——解决记录 - 简书 解决`libssl.so.1.0.0: cannot open shared object file: No such file or directory`问题 - 简书 openssl 默认版本问题(Anaconda相关)_anaconda openssl-CSDN博客  whereis openssl 可以使用以下命令将内容添加到 ~/.bashrc 文件中: shellCopy Code 这将在 ~/.bashrc

    2024年02月07日
    浏览(26)
  • 宝塔安装python和openssl

    宝塔安装python和openssl OpenSSL Centos7 openssl 升级 1.1.1k.tar.gz centos7系统安装Vicuna(小羊驼)聊天机器人 CentOS中输入yum报错:sudo: unable to execute /bin/yum: No such file or directory opensslrpm安装指南-让你的网站更加安全 CentOS7下rpm包方式升级openssl到安全版本1.1.1q python官网 https://blog.csdn.net/

    2024年02月09日
    浏览(22)
  • 在 CentOS 7 上解决 OpenSSL 版本问题的步骤

    概述: 当在 CentOS 7 上更新 OpenSSL 后,但在运行 openssl version 命令时仍显示旧版本,可能是由于未正确安装或配置新版本的 OpenSSL 所导致的。以下是解决此问题的步骤的总结。 步骤: 清除 OpenSSL 缓存: 运行以下命令以清除 OpenSSL 缓存,确保系统加载最新的 OpenSSL 版本: 确认

    2024年02月10日
    浏览(27)
  • FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库

    ​ 《FFmpeg开发实战:从零基础到短视频上线》一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址。FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视频,需要

    2024年04月22日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包