执行curl -sSL 提示curl: (35) SSL connect error

curl -sSL https://shipyard-project.com/deploy| ACTION=node DISCOVERY=etcd://192.168.5.252:4001 bash -s

提示如下报错:

curl: (35) SSL connect error

解决方法:升级网络安全服务即可。

yum update nss

<think>好的,我现在需要解决用户在CentOS系统上下载Docker CE稳定仓库元数据时遇到的SSL连接错误,具体是Curl error 35和“Recv failure: Connection reset by peer”。首先,我需要分析可能的原因。 首先,用户使用curl命令时出现SSL连接问题,可能涉及到SSL/TLS协议版本或加密套件不兼容。CentOS默认的curlOpenSSL版本可能较旧,不支持Docker仓库使用的较新协议。比如,如果仓库服务器要求TLS 1.2或更高,而客户端使用旧版本,就可能失败。 其次,网络问题也可能导致连接被重置。中间可能有防火墙或代理拦截了SSL握手,导致连接中断。用户需要检查网络设置,尤其是企业环境中的代理配置。另外,SELinux或iptables设置可能阻止了连接,需要暂时禁用测试。 然后,系统时间不正确也会导致SSL证书验证失败。如果系统时间与真实时间偏差较大,证书的有效期检查会失败,从而中断连接。用户需要确认时间同步是否正确,比如使用ntpdate同步时间。 接下来,考虑更新系统工具。升级curlOpenSSL和CA证书包可能解决问题。用户可以通过yum更新这些软件包,或者添加第三方仓库(如EPEL)获取较新版本。例如,安装较新的curl版本可能支持更现代的SSL协议。 另外,手动下载仓库文件并检查是否能通过其他方式获取,比如使用wget或调整curl的参数,例如使用--tlsv1.2强制使用TLS 1.2。如果手动下载成功,可能说明仓库配置中的URL正确,但工具版本或参数需要调整。 还需要检查Docker的仓库配置是否正确,URL是否有拼写错误,或者是否被重定向到不可用的镜像。有时候更换镜像源,比如阿里云的镜像,可以避免连接问题。 最后,如果所有方法都无效,可能需要详细日志分析。使用curl-vvv参数输出详细调试信息,查看SSL握手过程中的具体错误点,从而更精准地解决问题。 现在需要将这些可能性整理成步骤,指导用户逐一排查。同时,根据用户提供的引用内容,比如重启Docker服务、使用阿里云镜像仓库、Docker Compose的配置,可能相关操作中的某些步骤或配置影响到了仓库访问,需要检查相关配置文件的正确性。 总结可能的解决步骤:更新工具和证书、检查网络设置、调整SSL协议参数、验证系统时间、更换镜像源、详细日志分析。同时,引用用户提供的参考信息中的相关部分,如使用阿里云镜像仓库的步骤,可能帮助用户绕过官方仓库的问题。</think>### 解决Docker CE仓库元数据下载的SSL连接错误步骤 在CentOS系统中遇到`Curl error 35: SSL connect error`或`Recv failure: Connection reset by peer`时,通常由以下原因导致: #### 1. **更新系统工具和依赖库** - **升级curlOpenSSL**: CentOS默认的curl可能版本较低,不支持现代SSL协议。通过以下命令更新: ```bash sudo yum update curl openssl ca-certificates -y ``` 若仍无法解决,可尝试通过EPEL仓库安装新版: ```bash sudo yum install epel-release -y sudo yum update curl -y ``` - **更新CA证书**: 证书包过期会导致SSL验证失败: ```bash sudo yum install ca-certificates -y sudo update-ca-trust ``` #### 2. **检查网络配置** - **代理设置**: 若使用代理,需配置环境变量: ```bash export https_proxy="http://代理地址:端口" ``` 或检查`/etc/docker/systemd`中的代理配置[^4]。 - **防火墙/SELinux**: 临时关闭防火墙和SELinux以测试: ```bash sudo systemctl stop firewalld sudo setenforce 0 ``` #### 3. **调整SSL协议参数** - **强制使用TLS 1.2**: 在curl命令中指定协议版本: ```bash curl -fsSL --tlsv1.2 https://download.docker.com/linux/centos/docker-ce.repo ``` 或在`/etc/yum.repos.d/docker-ce.repo`中添加SSL配置: ```ini sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt ``` #### 4. **验证系统时间同步** - **同步时间**: SSL证书依赖系统时间准确性: ```bash sudo yum install ntp -y sudo ntpdate pool.ntp.org ``` #### 5. **更换镜像源** - **使用阿里云镜像仓库**: 若官方仓库不稳定,改用国内镜像(参考用户提供的阿里云配置[^3]): ```bash sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ``` 更新缓存后重试: ```bash sudo yum clean all sudo yum makecache ``` #### 6. **详细错误日志分析** - **启用curl调试模式**: 通过`-vvv`参数获取详细SSL握手信息: ```bash curl -vvv -fsSL https://download.docker.com/linux/centos/docker-ce.repo ``` 检查输出中是否提示协议版本不匹配或证书错误。 #### 7. **重启Docker服务** - 完成修复后,重启服务使配置生效[^1]: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值