如何在Debian 9中升级OpenSSL至1.1.1及以上版本?
如何在Debian 9上将OpenSSL升级至1.1.1及以上版本
你的问题核心是:Debian 9官方软件源里的OpenSSL最高版本为1.1.0l,而当前终端调用的是/usr/local/bin下的1.0.2o版本。要满足Python 3.10+(PEP-644要求OpenSSL >=1.1.1)的需求,需手动编译安装更高版本的OpenSSL,具体步骤如下:
1. 安装编译依赖
先更新系统源并安装编译必需的工具和依赖库:
sudo apt-get update sudo apt-get install build-essential libssl-dev zlib1g-dev
2. 准备OpenSSL源码
从OpenSSL官网下载1.1.1系列的稳定版源码(推荐选1.1.1w,长期支持至2025年),将源码包放到/tmp目录后执行解压命令:
cd /tmp tar xzf openssl-1.1.1w.tar.gz cd openssl-1.1.1w
3. 编译并安装OpenSSL
指定独立的安装路径,避免覆盖系统默认的OpenSSL(防止破坏系统原有依赖程序):
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib make sudo make install
4. 配置系统优先使用新版本
全局永久生效
先备份当前的旧版本OpenSSL:
sudo mv /usr/local/bin/openssl /usr/local/bin/openssl.old
创建软链接指向新安装的OpenSSL:
sudo ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl
更新系统库缓存,让系统识别新的OpenSSL库:
echo "/usr/local/openssl/lib" | sudo tee -a /etc/ld.so.conf.d/openssl.conf sudo ldconfig
临时生效(仅当前终端会话)
如果不想修改全局设置,可在当前终端临时设置环境变量:
export PATH=/usr/local/openssl/bin:$PATH export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
5. 验证升级结果
执行以下命令确认版本是否符合要求:
openssl version
正常输出应为OpenSSL 1.1.1w 11 Sep 2023(或你安装的对应版本)。
额外注意事项
- 不要替换系统默认的
/usr/bin/openssl,否则可能导致依赖该版本的系统工具出现异常。 - 编译Python 3.10+时,需指定新的OpenSSL路径,确保Python调用到升级后的版本:
./configure --with-openssl=/usr/local/openssl
内容的提问来源于stack exchange,提问作者Oscar
相关产品推荐
相关产品推荐

