HTTPS域名443端口证书到期问题排查与解决

devtools/2025/2/4 4:29:05/

在现代Web开发中,HTTPS协议广泛用于确保客户端和服务器之间的通信安全。然而,HTTPS依赖于SSL/TLS证书来加密通信并验证网站的身份。当证书过期时,客户端可能会遇到连接错误。本文将介绍如何排查和解决因证书过期引起的问题,尤其是如何处理以下错误:https>https://i-blog.csdnimg.cn/direct/33eaec5e17044bbc804f6025123a83f2.png" width="1356" />

```
uploadStreamError: RequestCoreException: cURL error: Peer's Certificate has expired. (60)
```

## **1. 错误分析**https>https://i-blog.csdnimg.cn/direct/ffedb34f18f54735956455e87bbb82c2.png" width="2400" />

### 错误提示
错误信息中 `cURL error: Peer's Certificate has expired. (60)` 显示的是与证书相关的问题。这表示服务器端的SSL/TLS证书已经过期,导致无法建立安全的HTTPS连接。

`Peer's Certificate has expired` 表明,连接到的服务器的证书日期已经超过了有效期。

### 触发错误的场景

https>https://i-blog.csdnimg.cn/direct/e1a340d8aa9440eea1c939d50b6cbfc1.png" width="2194" />
这种错误通常在以下几种情况下发生:

1. **证书到期**:SSL/TLS证书的有效期过期,服务器无法提供有效的证书。
2. **客户端的证书验证配置问题**:客户端的证书验证未配置正确,可能导致忽略某些证书错误,或者验证不通过。
3. **服务器证书链不完整**:有时服务器可能没有正确配置证书链,导致客户端无法验证证书。
4. **中间证书丢失**:服务器上缺少适当的中间证书,导致证书验证失败。

## **2. 排查步骤**

### 步骤1:确认证书是否过期https>https://i-blog.csdnimg.cn/direct/dffa9937acd240d7840759f6ceb18d75.png" width="1946" />

首先,检查目标网站的SSL/TLS证书是否过期。你可以使用以下方法:

1. **浏览器检查**:在浏览器中访问网站并查看证书信息。大部分现代浏览器允许你点击地址栏左侧的锁图标,查看证书的详细信息,其中会显示证书的有效期。
2. **OpenSSL检查**:使用 `openssl` 命令行工具来查看证书信息。
   ```bash
   openssl s_client -connect example.com:443
   ```
   该命令会连接到服务器并显示服务器的证书信息,包括有效期。https>https://i-blog.csdnimg.cn/direct/11c271f571594843bc537130b05fbe9d.png" width="1516" />

3. **在线工具**:你也可以使用一些在线工具,如 [SSL Labs](https>https://www.ssllabs.com/ssltest/),来测试服务器证书是否过期以及其他SSL配置问题。

### 步骤2:检查客户端证书验证配置

如果证书未过期,但仍然收到上述错误,可能是客户端的cURL配置存在问题。确保客户端的 `cURL` 配置正确,能够正确验证证书。

1. **禁用证书验证**:如果你想暂时绕过验证,可以通过 `-k` 或 `--insecure` 标志来禁用证书验证。这应该只在测试环境中使用,不建议在生产环境中使用。
   ```bash
   curl -k https>https://example.com
   ```

2. **更新CA证书库**:如果客户端缺少正确的根证书或者证书链不完整,可以尝试更新CA证书库。对于Linux系统,可以使用如下命令更新:
   ```bash
   sudo apt-get update
   sudo apt-get install --reinstall ca-certificates
   ```

### 步骤3:检查服务器证书链

确保服务器的SSL证书链配置正确。服务器需要提供完整的证书链,包括根证书和所有中间证书。你可以使用如下命令来查看服务器的证书链:
```bash
openssl s_client -connect example.com:443 -showcerts
```
确保所有中间证书都已正确安装。

### 步骤4:更新或更换过期证书

如果确认证书已经过期,最直接的解决方法是更新服务器上的SSL/TLS证书。你可以从受信任的证书颁发机构(CA)获取新的证书并进行安装。具体步骤如下:

1. **购买新证书**:从受信任的证书颁发机构(如 Let's Encrypt、GlobalSign、DigiCert等)购买或申请新的SSL证书。
2. **安装证书**:根据服务器类型(如Apache、Nginx、IIS等)安装新的证书。每个Web服务器的安装方法稍有不同。
   - **Apache**: 修改配置文件,指定证书和密钥路径:
     ```apache
     SSLCertificateFile /path/to/certificate.crt
     SSLCertificateKeyFile /path/to/private.key
     SSLCertificateChainFile /path/to/chainfile.pem
     ```
   - **Nginx**: 在配置文件中指定证书和私钥路径:
     ```nginx
     ssl_certificate /path/to/certificate.crt;
     ssl_certificate_key /path/to/private.key;
     ```
3. **重启Web服务器**:配置完成后,重启Web服务器以使新证书生效。

## **3. 解决方法**

### 更新证书

1. 如果证书已过期,首先申请新的证书,安装并配置正确的证书链。
2. 在客户端,确保使用最新的根证书库,并在可能的情况下,禁用证书验证来暂时绕过问题。

### 配置cURL

如果是cURL客户端问题,可以通过以下步骤进行修复:

1. **确保cURL与正确的CA证书一起使用**:
   将CA证书路径传递给cURL:
   ```bash
   curl --cacert /path/to/ca-certificates.crt https>https://example.com
   ```

2. **禁用证书验证**(不推荐在生产环境中使用):
   ```bash
   curl -k https>https://example.com
   ```

## **4. 结论**https>https://i-blog.csdnimg.cn/direct/3bc6c914b6614aefaf62fe46ad418540.png" width="1348" />

遇到 `cURL error: Peer's Certificate has expired. (60)` 错误时,首先检查证书是否过期。如果证书过期,更新证书并确保服务器正确配置证书链。如果是客户端问题,检查客户端的证书验证配置,确保使用最新的根证书库。通过这些步骤,你应该能够顺利排查并解决HTTPS证书过期问题。


http://www.ppmy.cn/devtools/155904.html

相关文章

排序算法——快速排序

代码仓库: 1037827920/AlgorithmZoo 快速排序 算法步骤 选择基准元素,从数组中选择一个元素作为基准,通常选择方式有: 第一个元素最后一个元素中间元素随机选择 分区操作,将数组元素根据基准分为两部分,…

Hive存储系统全面测试报告

引言 在大数据时代,数据存储和处理技术的重要性日益凸显。Apache Hive作为一个基于Hadoop的数据仓库工具,因其能够提供类SQL查询功能(HiveQL)而广受欢迎。Hive的设计初衷是为了简化大数据集的查询和管理,它允许用户通…

AMD架构简单读书笔记1

目录 前言 关于AMD架构 AMD64 Features 概述 寄存器 指令集 媒体指令 浮点指令 前言 笔者打算简单的记录一下自己读AMD手册架构的书。笔者先前还记录了自己RISC-V手册的阅读笔记,RISC-V读书笔记-CSDN博客。感兴趣的朋友可以简单的翻阅一二。 AMD的所有技术…

记录 | 基于MaxKB的仿小红书旅游文章AI制作(含图文、视频)

目录 前言一、创建应用Step1 表单Step2 AI对话生成旅游攻略提炼场景Step3 图片生成Step4 视频生成Step5 指定回复二、检验效果三、整体结构视图更新时间前言 参考文章: 自己的感想 想复现文章的内容你需要先学习下我之前的三篇文章中的记录。 1、记录 | Docker的windows版安装…

【故障诊断】量子粒子群优化极限学习机实现乳腺癌诊断,(QPSO-ELM)数据分类

1.简介 本文采用量子粒子群优化极限学习机实现乳腺癌诊断,极限学习机(ELM)用来训练单隐藏层前馈神经网络(SLFN)与传统的SLFN训练算法不同,极限学习机随机选取输入层权重和隐藏层偏置,输出层权重…

机器学习优化算法:从梯度下降到Adam及其变种

机器学习优化算法:从梯度下降到Adam及其变种 引言 最近deepseek的爆火已然说明,在机器学习领域,优化算法是模型训练的核心驱动力。无论是简单的线性回归还是复杂的深度神经网络,优化算法的选择直接影响模型的收敛速度、泛化性能…

基于PostgreSQL的自然语义解析电子病历编程实践与探索(上)

一、引言 1.1研究目标与内容 本研究旨在构建一个基于 PostgreSQL 的自然语义解析电子病历编程体系,实现从电子病历文本中提取结构化信息,并将其存储于 PostgreSQL 数据库中,以支持高效的查询和分析。具体研究内容包括: 电子病历的预处理与自然语言处理:对电子病历文本进…

【Conda 和 虚拟环境详细指南】

Conda 和 虚拟环境的详细指南 什么是 Conda? Conda 是一个开源的包管理和环境管理系统,支持多种编程语言(如Python、R等),最初由Continuum Analytics开发。 主要功能: 包管理:安装、更新、删…