Linux怎么解决curl访问提示SSL证书过期的问题

星明君_7488

星明君_7488

2026-09-30

583人浏览

原创

本地ca证书库过期导致curl验证失败,需更新ca-certificates包并执行update-ca-certificates --fresh;若为debian 9等旧系统,还需手动添加isrg root x2证书并注释/etc/ca-certificates.conf中已失效的dst_root_ca_x3.crt行。

linux怎么解决curl访问提示ssl证书过期的问题

当Linux系统中执行curl命令访问HTTPS网站时突然报错“SSL certificate problem: certificate has expired”,说明本地curl在验证服务器证书时,发现其信任链中某个关键证书(通常是根证书或中间证书)已被系统判定为过期,而非目标网站自身证书过期——这在Debian 9、Ubuntu 16.04等旧系统上尤为常见,因内置CA证书库未更新至支持ISRG Root X2等新信任锚。

确认是否为本地证书库过期导致

运行 openssl s_client -connect curl.se:443 -showcerts 2>/dev/null | openssl x509 -noout -dates,查看输出中的“notAfter”时间。若显示早于【2026年9月29日】,则证实本地信任的根证书已物理过期,必须更新系统CA库。

对比测试:curl -I https://google.com 与 curl -I https://letsencrypt.org。前者通而后者的失败,是典型Let’s Encrypt证书链信任断裂信号。

更新系统CA证书库(推荐方案)

第一步:更新包管理器索引并升级ca-certificates包

Debian/Ubuntu系执行:sudo apt update && sudo apt install --reinstall ca-certificates

CentOS/RHEL系执行:sudo yum update ca-certificates 或 sudo dnf update ca-certificates

第二步:强制刷新证书软链接与哈希索引

执行 sudo update-ca-certificates --fresh。该命令会清空/etc/ssl/certs下的符号链接,重新扫描/usr/share/ca-certificates/下所有.crt文件并生成新哈希目录。不执行此步,旧证书仍可能被缓存调用。

第三步:验证生效

curl -v https://curl.se 2>&1 | grep "subject:",确认返回的证书主题含"ISRG Root X2"或"DST Root CA X3"(后者已于2021年9月30日停用,但部分旧系统仍残留,需手动剔除)。

Computer Use Linux
Computer Use Linux

顶级 Linux 计算机使用技能,配套独立自举运行时,无需本地 Claude 安装、私有原生模块等。

下载

临时绕过验证(仅限调试)

方法一:使用 -k 参数忽略全部SSL校验

curl -k https://example.com

方法二:指定最新CA证书文件路径

下载权威CA Bundle:curl -s https://curl.se/ca/cacert.pem -o ~/cacert.pem

然后调用:curl --cacert ~/cacert.pem https://example.com

【注意:-k参数会使连接完全失去身份认证能力,生产环境严禁使用】

修复Debian 9等老旧系统特有问题

Debian 9默认不包含ISRG Root X2,且其ca-certificates包版本过旧,update-ca-certificates无法自动拉取新根。必须手动注入:

执行 wget -O /usr/local/share/ca-certificates/isrgrootx2.crt https://letsencrypt.org/certs/isrg-root-x2.pem

再运行 sudo update-ca-certificates

若仍报错,检查/etc/ca-certificates.conf中是否含DST_Root_CA_X3.crt行——该证书已于2021年失效,需用#号注释掉该行,否则update-ca-certificates会将其重新激活。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

2023.06.14

3403

6

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

2023.10.30

735

4

SSL检测工具介绍
SSL检测工具介绍

SSL检测工具有SSL Labs、SSL Check、SSL Server Test、SSLMate、SSL/TLS Analyzer等。详细介绍:1、SSL Labs是一个由Qualys提供的在线SSL检测工具,可以评估服务器证书的部署情况、加密套件、协议支持等方面的安全性,它提供了一个详细的报告,包括证书的颁发者、有效期、安全性配置等;2、SSL Check等等。

2023.10.20

690

3

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3730

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3233

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2313

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5570

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5242

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3113

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习