使用 Openssl 校验证书(转载)

332 阅读1分钟

引用: 如何在 Linux 中使用 OpenSSL 命令检查证书?

如何检查 OpenSSL 版本?

大多数 Linux 系统都预装了OpenSSL,但最好还是确保有最新的运行版本。 您可以运行以下命令检查 OpenSSL 版本:

openssl version -a

image.png Linux 中的证书文件默认位于 /etc/pki/tls/certs文件夹中,有时也位于特定应用程序文件夹中,如 Apache 的 /etc/httpd文件夹。 这些文件一般使用.pem或 .crt 扩展名,可能会命名为yourdomain.pemyourdomain.crt,但有时也会使用通用的 “服务器 “文件名。

如果你已经申请了SSL 证书并将其安装在服务器上,你应该已经知道它的位置和文件名。


如何查看证书详情

您可以使用 OpenSSL 分别或一次性检查证书有效性、签发者和主题。 确保您可以访问服务器和 SSH 终端。

OpenSSL 提供了丰富的命令来生成、安装和管理证书。 要检查特定证书的详细信息,请运行以下命令:

openssl x509 -in /root/mycertificate.crt -text -noout


查看 SSL 证书本身(编码)

OpenSSL 允许你以原始编码格式查看 SSL 证书。 运行下面的命令来显示它:

$ echo | openssl s_client -servername howtouselinux.com -connect yourplc.com:443 2>/dev/null | openssl x509


检查密钥是否与证书匹配

要验证公钥和私钥是否匹配,需要从每个文件中提取公钥,并为其生成哈希输出。 所有三个文件应共享相同的公钥和哈希值。 下面介绍如何使用 OpenSSL 检查证书和密钥的详细信息。 使用以下命令生成每个文件公钥的哈希值:

openssl pkey -pubout -in privateKey.key | openssl sha256

openssl req -pubkey -in CSR.csr -noout | openssl sha256

openssl x509 -pubkey -in certificate.crt -noout | openssl sha256


检查 SSL 证书是否有效

echo | openssl s_client -connect www.baidu.com:443 2>/dev/null | grep "verify"

image.png


检查 SSL 证书的颁发者

如果要检查 SSL 证书签发者,请运行下面的命令行。 它会显示签署证书的证书颁发机构。

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


检查 SSL 证书的颁发对象

您还可以检查 SSL 证书的主题。 根据验证类型的不同,您将只看到通用名称,或看到公司的正式名称。

$ echo | openssl s_client -servername .com -connect howtoyourplcuselinux.com:443 2>/dev/null | openssl x509 -noout -subject


在 Linux 中检查 SSL 证书有效性

了解 SSL 证书的到期时间非常重要,这样你就可以提前更新证书,避免潜在的网站中断和数据泄露。 下面介绍如何在 Linux 中检查 SSL 证书的过期日期:

$ echo | openssl s_client -servername howtouselinux.com -connect yourplc.com:443 2>/dev/null | openssl x509 -noout -dates


显示 SSL 证书的所有上述信息

您也可以使用 OpenSSL 命令来检查证书签发者、主题和有效期,命令如下:

$ echo | openssl s_client -servername howtouselinux.com -connect yourplc.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates

image.png