域名证书信息查看, 这个行为,在网站安全运维工作里头域名证书信息查看, 算是那种非常频繁的常见操作。它常常被拿来确认证书的有效期是多久, 或者是排查HTTPS连接方面出现的异常情况, 又或者是审计SSL部署方面的合规性到底怎么样子。
这一篇文章提供出三种已经被验证过的查看方式。这三种方式覆盖Windows, macOS, Linux这些全平台的内容。只要按照步骤来操作的话, 就是可以直接去执行的。
一、你可以通过使用浏览器的方式来实现查看, 这种方法被认为是目前最为快捷的操作途径。
这一功能适用于那些希望快速确认证书状态的人, 同时也无需安装额外工具。
操作步骤:
1. 请在Chrome浏览器或者Edge浏览器里访问你想要去的目标网站, 拿https://gname.xin这个网址来做例子。
2. 你需要点击地址栏左侧位置的那个锁形状的图标, 如果使用的是谷歌浏览器的话, 或者你是在使用微软的edge浏览器, 那就去点击那个盾形状的图标, 然后点击之后会蹦出来一整个菜单, 在这个菜单里面找到叫做查看证书这个选项, 或者是找到连接是安全的以及后面跟着的是证书有效这样的字样, 然后点选它。
3. 在这个证书详情所呈现出来的窗口里面, 会包含有一些核心的字段, 具体就是下面这些。
这是颁发给那个作为主要目标主体的一个东西, 这个主体通常是指域名的具体持有者或者是某一个专门的机构的名字。
颁发这个证书的机构, 它被称为是颁发者也就是Issuer, 而实际上就是指负责签发该证的那个证书颁发机构的CA。
这个有效时间的开始日期和结束日期, 以及具体的时刻。
序列号的组成部分, 还有采用SHA-256算法计算出来的指纹。
公钥算法及密钥长度
4. 请切换到被称为“详细信息”的那个选项卡, 或者是被称为“证书路径”的那个选项卡。这样你就可以看到完整的证书链条了。这个链条包含了根证书。这个链条也包含了中间证书。这个链条还包含了服务器证书。
如果你在用浏览器的时候, 看见了“您的连接不是私密连接”或者“证书无效”这些警告, 这说明那个证书可能已经过了规定的有效时间, 也可能上面的域名和你正在访问的网站地址对不上, 或者是证明文件链不够完整, 你需要再去查一查具体是什么情况。
二、可以通过输入命令行指令进行查看, 这一种方式是全部信息展示最为完整的一种途径。
这句话是适用于那种需要导出证书文件的场景, 也是适用于查看完整字段的场景, 还是适用于编写自动化检测脚本的场景。
Windows系统:
以管理员身份去打开PowerShell或者CMD, 来执行相关操作。
openssl s_client -connect gname.xin:443
如果机器上没有安装OpenSSL这个软件的话, 使用者可以通过WSL或者是Git Bash来把东西调用出来。返回的那些内容里会包含证书的主体信息、颁发者的信息、有效期限的信息, 还有支持的协议版本列表以及加密套件的列表这些内容。
macOS / Linux系统:
在终端里面, 你要是执行下面的这些命令的话, 那就可以把证书的每一个字段都全部以明文的形式给显示或者输出出来。
先是用回声把空的输入传递给开窍了的openssl工具里面的客户机模块, 让它去连线那个叫gname点xin的域名加上一点四四三的端口号, 同时把两档的错误信号直接丢到黑洞里去, 然后接着把这个输出的内容再传给那个叫x五零九的模块, 并且告诉它不要拿出多余的介绍文本出来。
如果仅仅需要进行查看有效期的操作, 那么可以使用。
使用openssl命令行工具, 加上x509参数, 再加上-noout参数, 最后跟上-dates参数。
假如需要把证书导出成PEM文件格式的话, 那么在第一条命令的后面, 再追加一个大于号接着写cert.pem就可以了。
三、用户可以通过在线工具来查看, 这是最为轻量的方式。
这个情况适用于那些没有访问无服务器的权限, 或者需要快速生成检测报告的场合。
1. 我们要打开那些在线的平台上头去, 比如这个叫做SSL Labs的平台, 它的那个网址是sslabs.com, 或者是叫做DigiCert SSL Checker的这种类似的能用来检查的地方。
2. 将目标域名, 这个域名类似于是gname.xin这样的, 输入进去以后, 再点击界面上的“Analyze”这个按钮或者点击“Start”这个按钮。
3. 该功能让平台自动去把证书链验证这件事做完。它同时也把协议兼容性测试这回事给处理了。此外, 还会对系统的加密强度做出评估工作。最后, 系统会给结果打出一个综合评分。这个分数是由字母A一直到字母F来表示的。
4. 你可以直接把结果页截图, 也可以把结果导出成PDF文件, 这样是方便存档的, 并且也方便与团队成员进行共享。
浏览器在访问网站的时候发出了提示, 说这个证书存在异常现象, 然而大家仔细看了一下, 发现该证书的有效期并没有结束, 并没有到期的日子, 这种情况大多数时候是因为服务器方面缺少了中间环节也就是中间证书导致的, 我们解决的办法应该是把包含了根证书以及中间证书和服务器证书在内的完整证据链条按照正确的先后顺序安排妥当以后部署安装到这个Web服务器的相关配置里面去。
出现了一个情况, 就是域名和证书不相匹配, 这个情况的具体表现是, 证书里面的Subject部分, CN字段或者是SAN字段的内容和正在访问的那个域名不一致, 碰到这种问题之后需要做的事情是联系CA机构去重新签发一个能够和域名正确匹配的证书。
在查看 IPv6 环境的时候, 用户需要把命令行里面输入的那个主机地址给替换掉, 要替换成 [::1], 然后端口这个事儿, 还是保持为 443, 具体的操作逻辑, 就完全不变。
上面提到的这几种方法, 它们是可以互相补充的。如果你要搞日常的巡检, 那直接用浏览器, 三十秒钟就能搞定。要是需要深度排查或者搞脚本化的检测呢? 那就得用命令行。
还有一种情况, 比如你没有权限, 又或者必须得要出一份报告,那你就去用在线工具。这样子的话域名证书信息查看, 就能把查看域名的证书信息所涉及的所有典型场景, 都给完整地覆盖到。


