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 上
- 打开命令提示符或 PowerShell 按Win + R,输入cmd 或powershell,然后按Enter。
- 运行 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
以下是每个部分的含义:
- echo |:向 OpenSSL s_client 命令发送空输入。 它确保命令无需用户交互即可完成。
- openssl s_client -servername example.com -connect example.com:443:
- openssl s_client:该命令启动与远程服务器的SSL/TLS 连接。
- -servername example.com:该选项用于服务器名称指示(SNI),可在SSL 握手过程中指定主机名。 对于为不同域名托管多个SSL/TLS 证书的服务器来说,这是必要的。
- -connect example.com:443:指定要连接的服务器和端口。443 端口是HTTPS 的标准端口。
- 2>/dev/null (Linux) 或 2>nul (Windows):
- 将标准错误 (stderr) 重定向到 /dev/null (Linux) 或 nul (Windows),从而有效地丢弃任何错误信息。 它可以清理输出,只显示相关信息。
- | openssl x509 -noout -enddate:
- 管道 (|) 将前一条命令的输出作为 openssl x509 的输入。
- openssl x509:该命令用于管理 X.509 证书。
- -noout:防止命令以 PEM 格式打印证书。
- -enddate:只显示证书的到期日期。
- notAfter=May 23 12:00:00 2025 GMT:
- 如前所述,证书将于格林尼治标准时间 2025 年 5 月 23 日 12:00:00 到期。
- 如前所述,证书将于格林尼治标准时间 2025 年 5 月 23 日 12:00:00 到期。
如何从 PEM 编码文件中检查 SSL 证书过期日期
PEM 编码文件是一种 base64 编码格式,带有分隔符,如 —–BEGIN CERTIFICATE—– 和 —–END CERTIFICATE—–。 要使用 OpenSSL 检查 PEM 编码证书文件的有效期,请按以下步骤操作:
在 Linux 和 MacOS 上
- 打开终端应用程序。
导航到包含 PEM 文件的目录。 使用cd命令切换到证书文件所在的目录:
cd /path/to/your/certificate/directory - 使用以下命令检查过期日期。 用实际文件名替换your_certificate.pem。
openssl x509 -in your_certificate.pem -noout -enddate
在 Windows 上
- 打开命令提示符或 PowerShell。 按Win + R 键,输入cmd 或powershell,然后按Enter。
- 导航到包含 PEM 文件的目录。 使用 cd 命令导航到证书文件所在的目录:
cd C:\path\to\your\certificate\directory - 使用以下命令检查过期日期:
openssl x509 -in your_certificate.pem -noout -enddate
确保已安装 OpenSSL 并将其添加到 PATH。 如果没有,则可能需要指定openssl.exe二进制文件的完整路径。
底线
您可以在各种平台上使用 OpenSSL 检查证书过期情况。 尽管由于操作系统的不同,命令语法略有差异,但这些命令的输出都能提供有关SSL 证书有效期的重要信息。
notAfter字段特别告诉您证书失效的确切日期和时间。 通过监控这些信息,您可以及时更新证书,以保持通信安全,避免服务中断。