查看立即重定向到另一个页面的SSL证书


25

所以我已经为此搜索了很多,但是看来我的google-fu让我失败了-很抱歉,如果这是一个琐碎且已经回答的问题,我对此一无所获

我正在尝试诊断SSL证书主机名不匹配。当我访问有问题的URL时,它会将我重定向到另一个具有正确SSL证书的页面。但是,某些客户端报告他们正在接收SSL证书主机名不匹配错误。我唯一的假设是重定向页面的证书错误,并且某些客户端让它滑动,因为重定向后的页面是具有正确证书的新页面。

(问题的发生方式和原因实际上不是问题)

问题:

从外部(也称为世界上的客户端)进入-如何查看由自动重定向到另一页面的页面提供的证书?


另一个有用的资源是来自Qualy SSL Labs 的SSL服务器测试
TRiG

Answers:


35

使用通过管道传输到openssl x509的openssl s_client

$ openssl s_client -connect foo.example.com:443 < /dev/null | openssl x509 -text

(如果服务器使用SNI,请添加-servername foo.example.coms_client命令中。)

从/ dev / null重定向stdin以进行openssl的首次调用将防止它挂起以等待输入。


2
您还可以将输出通过管道传递openssl x509 -text到实际查看服务器证书中的内容,并从重定向初始openssl命令的输入,以/dev/null使该命令不会挂起: openssl s_client -connect ... < /dev/null | openssl x509 -text。查找“ X509v3使用者备用名称”字段。
Andrew Henle 2015年

@AndrewHenle很棒的补充。如果愿意,可以随意将其编辑为我的答案。
EEAA

像魅力一样工作-我在openSSL上只花了有限的时间,但是每次我需要做与ssl相关的任何事情时,它总是归结为它哈哈...谢谢!
罗伯特·佩兹

6
如果服务器使用SNI,则应添加-servername foo.example.coms_client选项。
布鲁诺2015年

我在输出中看不到信任链。如果我想查看网站是否受VeriSign或LetsEncrypt或ChineseGov或DO_NOT_TRUST_FiddlerRoot信任,我应该寻找什么?
卡尔·沃尔什

7

在Firefox 57中,如果您打开开发人员工具并转到“网络”标签:

  1. 确保Persist Logs已检查
  2. 访问感兴趣的URL
  3. 单击第一行(即与您感兴趣的服务器的请求相对应的那一行,从而导致重定向响应)
  4. 单击Security选项卡(向下,仍然在Network

这将使您查看证书信息,例如发行人的通用名称,发行人详细信息,有效期和指纹。

这对我工作的网站响应301重定向到另一个HTTPS网站。(不幸的是,接受的答案只是给了我最终目标页面的证书。)


感谢本机浏览器方法。您是否尝试过该-servername选项openssl?即使名称相同,也可以得出不同的结果。
mwfearnley '18

@mwfearnley不!使用openssl,我只是从答案中复制并粘贴,在不起作用后放弃了:)感谢您的建议。
mpavey


1

作为其他答案中提到的单独程序的替代方法,您还可以在浏览器中禁用自动重定向。

根据浏览器的不同,执行此操作的选项也不同,以下是Firefox和Chrome的方法:


不确定谁对此表示反对?
罗伯特·佩兹

是的,这正是我想要的一个完全在浏览器中的解决方案。
Michael12345's

1
在Chrome中,这对我不起作用。我可以在网络跟踪中看到302,但看不到如何从网络跟踪中检查证书。如果我单击“安全性”标签,则Chrome会向我显示当前网页(重定向目标)中的证书。
卡尔·沃尔什

投票之所以下降,可能是因为随着产品的变化,多年来“仅链接”的答案趋于腐烂。在Chrome引入“安全性”标签之前,这个答案可能行得通吗?
卡尔·沃尔什

1
@jpa您为Chrome提供的链接似乎用来说明重定向发生后如何保存网络日志,而不是如何阻止Chrome遵循重定向。
mpavey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.