所以我在谷歌上搜索了不少关于这个问题的信息,但似乎我的谷歌搜索能力不行了——如果这是一个微不足道的、已经得到回答的问题,我深表歉意,我找不到任何关于这个的信息
我正在尝试诊断 SSL 证书主机名不匹配问题。当我访问有问题的 URL 时,它会将我重定向到另一个具有正确 SSL 证书的页面。但是,一些客户报告说他们收到了 SSL 证书主机名不匹配错误。我唯一的假设是重定向页面的证书错误,而一些客户对此置之不理,因为它会解析为具有正确证书的新页面。
(问题的本质并不是如何发生和为什么发生)
问题:
从外部来看(即作为世界上的一个客户端) - 如何查看自动重定向到另一个页面的页面传递的证书?
答案1
使用openssl s_client管道输送至openssl x509:
$ openssl s_client -connect foo.example.com:443 < /dev/null | openssl x509 -text
(添加-servername foo.example.com
到客户端如果服务器使用信噪比。
第一次调用 openssl 时将 stdin 从 /dev/null 重定向,这样可以防止它因等待输入而挂起。
答案2
在 Firefox 57 中,如果你打开开发人员工具并转到“网络”选项卡:
- 确保
Persist Logs
已选中 - 访问感兴趣的 URL
- 单击顶行(即,与您感兴趣的服务器的请求相对应的行,导致重定向响应)
- 单击
Security
选项卡(位于中途,仍在 内Network
)
这将让您查看证书信息,例如颁发者的通用名称、颁发者详细信息、有效期和指纹。
在我使用 301 重定向到另一个 HTTPS 网站时,这种方法很有效。(不幸的是接受的答案只是给了我最终目的地页面的证书。)
答案3
此外,还有一个适用于 Windows 的图形工具,带有详细的文本跟踪:SSL 证书验证工具和工具描述:使用工具验证 SSL 证书下面是它如何处理重定向的一个例子:
答案4
尝试修改 URL,使其无法重定向。例如:https://www.example.com/>
根据服务器的不同,您可能能够点击返回错误而不是重定向的 URL。例如,如果您访问的是 IIS 服务器,则附加>
到 URL 将显示错误页面,但随后可以以正常方式查看证书,因为这可以防止重定向发生。