You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 5.8执行yum操作报SSLError: unknown protocol问题求助

CentOS 5.8 yum SSLError: unknown protocol 修复方案

问题根源

CentOS 5.8自带的Python 2.4和M2Crypto库不支持现代TLS协议(如TLS1.1/TLS1.2),即使手动升级了OpenSSL,M2Crypto仍会链接系统旧版OpenSSL库或本身不兼容新协议,导致yum访问HTTPS源时握手失败。

修复方案

方案一:切换至HTTP归档源(最简便)

CentOS 5的官方源已迁移至vault仓库,且HTTP无需复杂SSL握手,步骤如下:

  1. 备份原有repo配置:
    cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    
  2. 替换repo文件中的HTTPS为HTTP,并指向vault地址:
    sed -i 's/https:/http:/g' /etc/yum.repos.d/CentOS-Base.repo
    sed -i 's/mirror.centos.org\/centos\/5/vault.centos.org\/5.8/g' /etc/yum.repos.d/CentOS-Base.repo
    
  3. 清理yum缓存并测试:
    yum clean all
    yum install -y wget
    

方案二:重新编译M2Crypto链接新版OpenSSL(保留HTTPS)

若必须使用HTTPS源,需让M2Crypto链接已升级的OpenSSL 1.0.2:

  1. 安装编译依赖:
    yum install -y python-devel gcc
    
  2. 下载M2Crypto 0.22.6版本源代码(兼容Python2.4与OpenSSL1.0.2),解压后进入目录:
    tar zxf M2Crypto-0.22.6.tar.gz
    cd M2Crypto-0.22.6
    
  3. 编译并安装,指定新版OpenSSL路径(假设OpenSSL1.0.2安装在/usr/local/ssl):
    python setup.py build --openssl=/usr/local/ssl
    python setup.py install
    
  4. 验证链接是否生效:
    ldd /usr/lib64/python2.4/site-packages/M2Crypto/_M2Crypto.so | grep ssl
    
    输出应指向/usr/local/ssl/lib下的OpenSSL库。
  5. 清理缓存测试yum:
    yum clean all
    yum update
    

方案三:强制yum使用TLSv1.0协议

若源服务器仍支持TLSv1.0,可通过配置强制yum使用该协议:

  1. 编辑/etc/yum.conf,在[main]段添加:
    ssl_version=TLSv1
    ssl_cipher_list=DEFAULT:!DH
    
  2. 清理缓存并测试:
    yum clean all
    yum install -y vim
    

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:18:20