[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

如何使用 openssl 命令/选项说明检查证书的过期日期

你好。我是Heyfer Co. Ltd.系统解决方案部的成员。

您正在查看的Bever Blog已转换为HTTPS。在过去的几十年中,HTTP已成为巨大的打击,HTTP站点的数量大大减少。

目前,HTTPS所需的“ SSL证书”通常在一年内续签,因此需要定期续订,但是许多人使用浏览器检查SSL证书的有效期。

但是,可能有些人说:“浏览器是不确定的,所以我想检查使用命令,或者使用命令使用命令检查使用命令的人出于某种原因进行检查,例如“该端口不是在外部开发的,因为它目前正在开发中,所以我无法使用浏览器检查,但是当搜索只有偶尔使用的命令时,就会出现某些问题。

“命令用法和选项因人而异,但有什么区别呢?”
“就算打了人,也有很多选项我看不懂。”

对于这样的人,我想解释一下在检查 SSL 证书时经常与 openssl 命令一起使用的选项的含义和用法。

执行环境

・操作系统:AlmaLinux8(WSL2 环境)
・Shell:bash
・OpenSSL:OpenSSL 1.1.1k FIPS 2021 年 3 月 25 日

使用 openssl 命令检查“本地”或“远程”

首先,OpenSSL命令是由OpenSSL Projects开发和发布的命令,通常在主流Linux发行版中使用。此命令通常是可能的,但是这次将用于检查SSL证书的到期日期。

另外,在使用此命令检查时,有两种方法可以检查:“本地检查SSL证书”和“从外部远程检查SSL证书”。

首先,让我解释一下以前的当地。

当地环境

以下是在本地环境中检查时经常使用的一些命令。

OPENSL命令用于加载本地存储的证书并显示通用名称,有效的开始日期和到期日期。

$ openssl x509 -noout -subject -dates -in /etc/pki/tls/certs/example.crt
*输出样本主题=CN = exmaple.com *通用名(≒域名) notBefore=Mar 31 04:42:17 2022 GMT *有效开始日期 notAfter=May 2 04:42:16 2023 GMT *到期日期

x509

处理 SSL 证书时,请使用“openssl”命令中的子命令“x509”。

*“X.509”是公钥证书标准格式的名称,因此将其与之关联起来可能会更容易记住。

-在

在本地环境中运行时,需要指定要加载的证书名称,因此使用该选项。

-主题

此选项从导入的证书中输出主题字段(其中写入通用名称)。

-日期

此选项输出导入证书的有效开始日期和到期日期。

-noout

这是“除了其他选项中指定的信息之外,请勿输出信息”。如果此选项不可用,则还将显示由命令加载的预注册证书,如以下命令。

-----BEGIN CERTIFICATE----- MIIGMjCCBRqgAwIBAgIMMGPvI3CXFUjGngZcMA0GCSqGSIb3DQEBCwUAMEwxCzAJ BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSIwIAYDVQQDExlB ~以下几十行省略~ -----END CERTIFICATE -----

顺便说一句,还有一个 -nocert 选项,仅限于不显示证书的内容。

远程环境

这是我在远程检查时经常使用的一些命令。 OPENSL S_CLIENT命令用于访问目标主机,然后从中加载证书,显示通用名称,有效的开始日期和到期日期。

$openssl s_client -connect Beyondjapan.com:443 < /dev/null 2> /dev/null | openssl x509 -noout -subject -dates
*实际输出主题=CN = Beyondjapan.com notBefore=Mar 31 04:42:17 2022 GMT notAfter=May 2 04:42:16 2023 GMT

s_client

使用提供与 SSL/TLS 通信时所需的客户端功能的子命令。

-连接主机:端口

它是远程选项(指定要连接的主机和端口),就像您在本地使用 -in 来指定文件一样。
*这次我们使用 443 (HTTPS),但您也可以指定端口(例如 SMTP)并使用它来检查 SSL/TLS 连接。

< /dev/空

“ openssl s_client”命令连接到指定的目标,然后进入“输入等待状态”,因此无(/dev/null)输入到标准输入中以结束输入等待。如果您不使用此功能,则需要使用CTRL+C结束命令,因此这是因为这需要大量时间。

*这不是一个选项,而是与Shell标准输入有关的规范(在此环境中,bash)。

2> /dev/空

这是Linux上的标准错误输出(2)输出到无(/dev/null)并丢弃,并防止其显示在Shell上。如果您使用以前的< /dev /null,则会出现不必要的错误语句,因此这是擦除它的措施。

*这不是一个选项,而是有关Shell标准输出的规范(在此环境中,bash)。

| openssl x509 -noout -主题 -日期

使用“ |” (管道)将其传递到加载通过通信收到的SSL证书内容的命令。管道后的命令几乎与该命令相同,但是由于管道已收到证书,因此未使用指定要加载证书的选项。

*如果没有-in选项,则此命令的规范(X509)是处理传递给标准输入的内容。

其他人使用的命令和选项

命令

回声 | openssl s_client -connect ~

在远程环境中检查时,我使用< /dev /null来结束输入等待,但是我认为使用Echo会将命令放在壳上的标准输出中以优先考虑,并强迫它最终等待输入。意图与< /dev /null相同。

〜| openssl x509 -text | grep“不”

-Text选项将解密证书的所有内容,并将其输出文本。所有这些都包含在其他选项中单独指定和显示的内容中,因此在您要检查所有内容时将使用它。输出内容通过管道传递给GREP,并输出包含“不”的线。

$ openssl s_client -connect Beyondjapan.com:443 < /dev/null 2> /dev/null | openssl x509 -text | grep "Not" 不早于:2022 年 3 月 31 日 04:42:17 GMT 不晚于:5 月 2 日2023 年 42:16(格林尼治标准时间)

这将输出有效的开始和到期日期的行。这些命令很长,但是它们很简单,所以我认为对于“认识他们的人”来说,它们很容易理解。

但是,即使有专门的选项,我觉得依靠GREP将无法进行太多研究,而我对OpenSSL命令的理解失败了,因此我使用了我一开始就提出的命令。

此外,当尝试输出域名(通用名称)时,问题是由于使用正则表达式选项,命令将变得不那么可读。

选项

-结束日期

此选项仅显示已加载证书的到期日期。还有一个名为-startdate的选项,显示有效的开始日期,但是由于 - 天气选项意味着同时应用两个选项,因此,如果您对此不特别具体,我认为 - 天气很好。

-文本

如上所述,这是以文本格式显示证书的选项。输出包括所有设置信息,例如公钥,签名算法,发行人,主题名称,到期日期等。

没有 -noout 的模式

在这种情况下,按原样显示命令请求的未注重证书,并且将显示选项中指定的到期日期。老实说,我不看未打开证书的内容,因此如果我佩戴它们,请更容易阅读。

命令输出中显示“证书”一词,该单词清楚地表明您正在检查证书,这可能是一个优势。

< /dev/null 2> 不带 /dev/null 的模式

它的目的是使用CTRL + C是命令的先前版本,并且似乎很容易手动输入和可读性,因此我认为它的目的是优先考虑这一点。我想我喜欢这种东西,但是我喜欢我投入的模式,因为有时我最终在不退出命令的情况下输入下一个命令,导致输出和日志变得肮脏。

最后

当我写这篇文章时,我再次意识到openssl命令通常是可能的,而且还有很多选择,这很令人困惑。

这只是可以做的事情的一部分,主要技术,加密和身份验证方法本身是非常合乎逻辑和深刻的。我希望阅读本文能够帮助您解决有关OpenSSL命令的任何阻力或疑问!

感谢您阅读本文。

下一篇

以下是如何检查“完整性和验证结果”的方法,这些结果通常与“到期日期”一起检查。

如何使用 openssl 命令/选项解释检查证书完整性和验证结果

如何使用 openssl 命令/选项解释检查证书完整性和验证结果

参考资料

openssl-x509 的 OpenSSL 官方手册页
https://www.openssl.org/docs/manmaster/man1/openssl-x509.html

OpenSSL (ArchWiki)
https://wiki.archlinux.jp/index.php/OpenSSL

如果您觉得这篇文章有帮助,请点赞!
6
加载中...
6 票,平均:1.00 / 16
58,428
X Facebook 哈特纳书签 口袋
[网络研讨会] 多云入门:哪种云最适合您的业务?获取八大主流云的最新资讯!

[网络研讨会] 多云入门:哪种云最适合您的业务?获取八大主流云的最新资讯!

[网络研讨会]从操作结构到特定步骤!云服务器操作和维护的完整概述

[网络研讨会]从操作结构到特定步骤!云服务器操作和维护的完整概述

写这篇文章的人

关于作者

里面

2022 年加入 Beyond 职业生涯 属于
系统解决方案部门
LPIC-3 我有 304 和 AWS SAA 我的
常规饮料只有三种选择:牛奶、可乐和红茶。