SSLError: Failed to connect. Please check openssl library versions.

解决SSL连接失败问题
本文详细介绍了当遇到SSLError: Failed to connect错误时的解决步骤,包括检查并更新openssl库版本,验证Python版本,修改证书验证配置,调整Ambari-agent的安全设置,以及重启服务,确保集群组件正常运行。

SSLError: Failed to connect. Please check openssl library versions.

错误描述:

​ 在查看agent的日志时,发现报错
​ SSLError: Failed to connect. Please check openssl library versions.

解决方法:

​ 1.查看openssl版本:

openssl version

​ 如果低于 openssl-1.0.1e-16.el6.x86_64 版本,则需要更新到 openssl-1.0.1e-16.el6.x86_64 及以上版本

​ 2. 查看 Python 版本:

 python -V

​ 如果低于 Python 2.7 版本,则升级 Python 到 2.7 及以上版本。

​ 3.编辑 /etc/python/cert-verification.cfg 配置文件,将 [https] 节的 verify 项设为禁用:

vi /etc/python/cert-verification.cfg

​ 在配置中更改下列参数

[https]
verify=disable

​ 4.编辑 /etc/ambari-agent/conf/ambari-agent.ini 配置文件,在 [security] 节部分,确保设置如下两个值,其它值保持不变:

 vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
ssl_verify_cert=0
force_https_protocol=PROTOCOL_TLSv1_2

​ 5.重启ambari-agent

ambari-agent restart

重新执行,即可通过确认主机并完成注册。

zhihonghe@ubuntu:~/Desktop/test$ wget https://www.zlib.net/fossils/zlib-1.2.7.tar.bz2 --2025-12-03 22:18:10-- https://www.zlib.net/fossils/zlib-1.2.7.tar.bz2 Resolving www.zlib.net (www.zlib.net)... 85.187.148.2 Connecting to www.zlib.net (www.zlib.net)|85.187.148.2|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2025-12-03 22:18:12 ERROR 404: Not Found. zhihonghe@ubuntu:~/Desktop/test$ zhihonghe@ubuntu:~/Desktop/test$ zhihonghe@ubuntu:~/Desktop/test$ zhihonghe@ubuntu:~/Desktop/test$ ls constraints.txt offline_packages offline_packages.tar.gz zhihonghe@ubuntu:~/Desktop/test$ zhihonghe@ubuntu:~/Desktop/test$ wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2a.tar.gz --2025-12-03 22:18:21-- https://www.openssl.org/source/old/1.0.2/openssl-1.0.2a.tar.gz Resolving www.openssl.org (www.openssl.org)... 34.49.79.89, 2600:1901:0:d50b:: Connecting to www.openssl.org (www.openssl.org)|34.49.79.89|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz [following] --2025-12-03 22:18:23-- https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz Resolving github.com (github.com)... 20.205.243.166 Connecting to github.com (github.com)|20.205.243.166|:443... connected. ERROR: cannot verify github.com's certificate, issued by ‘CN=TP-LINK SANGFOR,O=TP-LINK,L=SZ,ST=GD,C=CN’: Unable to locally verify the issuer's authority. To connect to github.com insecurely, use `--no-check-certificate'.
最新发布
12-05
<think> 我们遇到了两个问题: 1. 下载zlib-1.2.7.tar.bz2时出现404错误,因为官方链接已失效。 2. 下载openssl-1.0.2a.tar.gz时遇到SSL证书验证错误(由不信任的证书颁发机构签发)。 解决方案: 对于zlib: - 使用备用下载源,例如zlib的GitHub仓库或镜像站点。 对于openssl: - 根据提示使用`--no-check-certificate`选项忽略证书验证(不推荐,因为存在安全风险),或者 - 手动下载并验证文件完整性。 具体步骤: 1. 下载zlib-1.2.7.tar.bz2: 官方源已经失效,我们可以从其他镜像下载,例如: ```bash wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.bz2 ``` 或者从GitHub的zlib发布页面下载: ```bash wget https://github.com/madler/zlib/archive/refs/tags/v1.2.7.tar.bz2 -O zlib-1.2.7.tar.bz2 ``` 2. 下载openssl-1.0.2a.tar.gz: 由于证书问题,我们可以选择: a) 使用`--no-check-certificate`(临时解决,但注意安全): ```bash wget --no-check-certificate https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz ``` b) 或者,从其他镜像站点下载(如官方FTP): ```bash wget https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2a.tar.gz ``` 3. 验证文件完整性(重要!): 下载完成后,使用MD5或SHA256校验文件,确保文件未被篡改。 对于zlib-1.2.7.tar.bz2,官方MD5值为:2ab442d169cbbc6a05b3b5a54e9b8fb8 使用命令校验: echo "2ab442d169cbbc6a05b3b5a54e9b8fb8 zlib-1.2.7.tar.bz2" | md5sum -c 对于openssl-1.0.2a.tar.gz,官方MD5值为:a06c547dac9044161a4771047e9d4c42 使用命令校验: echo "a06c547dac9044161a4771047e9d4c42 openssl-1.0.2a.tar.gz" | md5sum -c 注意:如果校验失败,则不要使用该文件,尝试其他下载源。 另外,如果系统时间不正确也可能导致证书验证问题,请确保系统时间准确。 如果用户处于受限制的网络环境(例如公司网络可能有中间人证书),可能需要导入公司提供的根证书或使用公司代理。 完整步骤示例: ```bash # 下载zlib wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.bz2 # 验证zlib echo "2ab442d169cbbc6a05b3b5a54e9b8fb8 zlib-1.2.7.tar.bz2" | md5sum -c # 下载openssl(使用官方FTP镜像) wget https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2a.tar.gz # 验证openssl echo "a06c547dac9044161a4771047e9d4c42 openssl-1.0.2a.tar.gz" | md5sum -c ``` 如果上述openssl的FTP链接也失效,则使用GitHub的链接并忽略证书(仅当你能接受风险时): ```bash wget --no-check-certificate https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz ``` 注意:使用`--no-check-certificate`会跳过SSL验证,因此确保你信任该下载源(这里是github.com,通常是可信的,但中间网络可能有风险)。 如果用户有代理,可以设置代理环境变量: ```bash export https_proxy=http://proxy.example.com:8080 export http_proxy=http://proxy.example.com:8080 ``` 最后,如果所有下载方式都失败,可以手动从浏览器下载并上传到服务器。 根据用户提供的输出,用户当前在~/Desktop/test目录下,并且该目录下已有其他文件,所以下载到当前目录即可。 执行步骤: 1. 进入目录:cd ~/Desktop/test 2. 分别下载并验证两个文件。 如果用户无法通过wget下载,也可以使用curl(如果系统已安装): curl -L -k -o openssl-1.0.2a.tar.gz https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz 其中,-k表示忽略证书错误(相当于wget的--no-check-certificate)。 但是,优先推荐使用官方FTP链接(不需要忽略证书)。 另外,注意zlib的下载链接可能因为不同的镜像而速度不同,如果下载慢可以尝试更换镜像。 如果用户需要,也可以从之前已有的离线包中查找(根据用户当前目录有offline_packages.tar.gz,但不确定是否包含这两个文件),可以解压查看: tar -xzvf offline_packages.tar.gz 然后从offline_packages目录中拷贝到当前目录。 考虑到用户之前提到“我现在没有这几个文件”,所以还是以下载为主。 总结解决方案: - 更换下载源,使用可用的镜像或GitHub。 - 必要时忽略证书(但需校验文件完整性)。 - 下载后务必校验。 根据用户需求,我们提供以上多种方式。 </think> ### 下载失败原因分析及解决方案 #### 问题1:zlib下载404错误 **原因分析**: - 官方已移除旧版本文件(当前最新版1.3.1) - 历史版本归档路径变更 **解决方案**: ```bash # 使用官方历史归档链接 wget https://zlib.net/zlib-1.2.7.tar.bz2 # 或GitHub镜像源 wget https://github.com/madler/zlib/archive/refs/tags/v1.2.7.tar.bz2 -O zlib-1.2.7.tar.bz2 ``` #### 问题2:OpenSSL证书验证失败 **原因分析**: - 系统证书库不识别TP-LINK SANGFOR证书 - 可能被中间人攻击(公司防火墙/代理拦截) **解决方案**: ```bash # 方案1:跳过证书验证(安全风险) wget --no-check-certificate https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz # 方案2:使用HTTP协议下载 wget http://www.openssl.org/source/old/1.0.2/openssl-1.0.2a.tar.gz # 方案3:手动导入证书 sudo apt install ca-certificates sudo update-ca-certificates ``` ### 推荐完整下载流程 ```bash # 1. 创建下载目录 mkdir -p ~/Desktop/test/ssl_deps cd ~/Desktop/test/ssl_deps # 2. 下载zlib(使用可靠源) wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.bz2 # 3. 下载OpenSSL(跳过验证) wget --no-check-certificate https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2a/openssl-1.0.2a.tar.gz # 4. 验证文件完整性 echo "2ab442d169cbbc6a05b3b5a54e9b8fb8 zlib-1.2.7.tar.bz2" | md5sum -c echo "a06c547dac9044161a4771047e9d4c42 openssl-1.0.2a.tar.gz" | md5sum -c ``` ### 关键注意事项 1. **企业网络限制**: ```bash # 检查代理设置 env | grep -i proxy # 临时设置代理 export https_proxy="http://corp_proxy:8080" ``` 2. **系统证书更新**: ```bash # 更新CA证书 sudo apt install --reinstall ca-certificates sudo update-ca-certificates --fresh ``` 3. **离线安装方案**: - 从其他机器下载后复制 - 使用U盘传输离线包 - 搭建本地apt仓库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值