如何使用 OpenSSL 检查 SSL 证书有效期

How to Check the SSL Certificate Expiration Date with OpenSSL

SSL 证书的有效期只有一年。 如果您没有在截止日期前更新证书,您的网站将无法访问,因为浏览器会将其标记为可能受到安全威胁。

了解证书的到期时间可以帮助您避免不必要的麻烦和网站中断。 使用流行的加密库是检查证书寿命的快速方法。 本指南将告诉你如何使用 OpenSSL 检查证书过期情况。 请遵照指示,不要让 SSL 证书的有效期影响网站的功能。


检查证书有效期的 OpenSSL 命令

OpenSSL提供了几种不同的命令来获取证书过期日期。 具体命令取决于证书文件的格式和存储位置。 在此,我们将介绍 Linux 和 Windows 上最常见的情况:

  • 存储在服务器上的证书
  • PEM编码证书文件

证书到期日期 OpenSSL 命令选项

使用 OpenSSL 在本地服务器上检查SSL 证书过期日期与在远程服务器上检查过期日期类似。 所不同的是,您不需要指定远程域和端口,而是使用 localhost 和运行本地服务器的相应端口。

在 Linux 上

在 Linux 命令行中检查 SSL 证书过期日期:

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

将 yourdomain.com 替换为您的实际域名。

在 Windows 上

  1. 打开命令提示符或 PowerShell 按Win + R,输入cmd powershell,然后按Enter
  2. 运行 OpenSSL 命令检查证书有效期:

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

将 yourdomain.com 替换为您的实际域名。 使用2>nul 部分代替
2>/dev/null,以丢弃 Windows 中的错误信息。

在 MacOS 上

在 macOS 系统上检查 SSL 证书过期日期与在 Linux 系统上相同,因为 macOS 和 Linux 都是类 Unix 操作系统。 这些命令及其用法完全相同。


分析命令和输出

现在,让我们检查命令中的每个元素,从技术角度了解 OpenSSL 如何检查有效期。 请看下面的命令

echo | openssl s_client -servername example.com -connect example.com:443 2>nul | openssl x509 -noout -enddate

还有输出:

notAfter=May 23 12:00:00 2025 GMT

以下是每个部分的含义:

  1. echo |:向 OpenSSL s_client 命令发送空输入。 它确保命令无需用户交互即可完成。
  2. openssl s_client -servername example.com -connect example.com:443
  3. 2>/dev/null (Linux) 或 2>nul (Windows):
    • 将标准错误 (stderr) 重定向到 /dev/null (Linux) 或 nul (Windows),从而有效地丢弃任何错误信息。 它可以清理输出,只显示相关信息。
  4. | openssl x509 -noout -enddate:
    • 管道 (|) 将前一条命令的输出作为 openssl x509 的输入。
    • openssl x509:该命令用于管理 X.509 证书。
    • -noout:防止命令以 PEM 格式打印证书。
    • -enddate:只显示证书的到期日期。
  5. notAfter=May 23 12:00:00 2025 GMT:
    • 如前所述,证书将于格林尼治标准时间 2025 年 5 月 23 日 12:00:00 到期。

如何从 PEM 编码文件中检查 SSL 证书过期日期

PEM 编码文件是一种 base64 编码格式,带有分隔符,如 —–BEGIN CERTIFICATE—– 和 —–END CERTIFICATE—–。 要使用 OpenSSL 检查 PEM 编码证书文件的有效期,请按以下步骤操作:

在 Linux 和 MacOS 上

  1. 打开终端应用程序。
    导航到包含 PEM 文件的目录。 使用cd命令切换到证书文件所在的目录:

    cd /path/to/your/certificate/directory
  2. 使用以下命令检查过期日期。 用实际文件名替换your_certificate.pem

    openssl x509 -in your_certificate.pem -noout -enddate

在 Windows 上

  1. 打开命令提示符或 PowerShell。 按Win + R 键,输入cmd powershell,然后按Enter
  2. 导航到包含 PEM 文件的目录。 使用 cd 命令导航到证书文件所在的目录:

    cd C:\path\to\your\certificate\directory
  3. 使用以下命令检查过期日期:

    openssl x509 -in your_certificate.pem -noout -enddate

确保已安装 OpenSSL 并将其添加到 PATH。 如果没有,则可能需要指定openssl.exe二进制文件的完整路径。


底线

您可以在各种平台上使用 OpenSSL 检查证书过期情况。 尽管由于操作系统的不同,命令语法略有差异,但这些命令的输出都能提供有关SSL 证书有效期的重要信息。

notAfter字段特别告诉您证书失效的确切日期和时间。 通过监控这些信息,您可以及时更新证书,以保持通信安全,避免服务中断。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.