开发者社区> 问答> 正文

openssl查询到的证书与浏览器端看到的证书不一样

问题: 我的openssl的版本是LibreSSL 2.8.3。 操作系统是macOS 11.4 下面以 www.cctv.com 为例进行说明,使用openssl查询得到的结果和在浏览器端查询的结果不一样。 截屏2021-08-09 下午6.20.18.png 我的openssl命令是:openssl s_client -connect www.cctv.com:443 < /dev/null | openssl x509 -noout -text | perl -l -0777 -ne '@names=/\bDNS:([^\s,]+)/g; print join("\n", sort @names);' 可以看到两个证书链完全不一样,SAN信息也不一样。

思考: 我们怀疑openssl可能是解析到了托管www.cctv.com的CDN上面。

测试一: 我使用nslookup查询这些SAN列表中的域名,想看看它们的cname信息是否一样,这些SAN域名的cname信息包括: ss.3z222.com.lxdns.com(网宿科技) sj.nzsiteres.com.w.cdngslb.com(阿里云) api.xiuxiu.meitu.com.dy.galileo.jcloud-cdn.com(京东云) cmscn.bmwgroup.com.wswebcdn.com(网宿科技) qf.56.com.cdn20.com(京东云) 这些SAN域名显然不在一个CDN上 并且使用dig soa 命令发现这些SAN域名的nameserver也不一样。 我不知道openssl拿到的这个信息到底是哪里的证书?这些SAN域名有什么关系?这是否意味着不必要的信息泄漏**

测试二: 我们使用一个已经使用了CDN的域名进行了测试, img.ccm.ink使用了腾讯的CDN,仍然使用同样的openssl进行测试得到的结果如下: 截屏2021-08-09 下午6.56.18.png 我们发现这些.myqcloud.com、tencentcos.com域名应该都是属于腾讯的CDN,似乎感觉是解析到了CDN的证书

另外: 我使用Ubuntu 20.04 LTS;OpenSSL 1.1.1f 服务器地址在美国洛杉矶 同样的命令得到的结果是(只有*.cctv.com和cctv.com) 截屏2021-08-09 下午6.35.37.png 使用CentOS Linux release 8.4.2105 OpenSSL 1.1.1g FIPS 服务器地址在北京 同样的命令得到的结果是(与浏览器查询www.cctv.com得到的结果一摸一样) 截屏2021-08-09 下午6.36.48.png

如果有研究进展,欢迎联系我 我的邮件地址是863156018@qq.com

展开
收起
游客fouwa26lm6x46 2021-08-09 18:40:05 1877 0
2 条回答
写回答
取消 提交回答
  • 云原生技术栈:公共号:cncfstack,博客:www.zhaowenyu.com

    我觉得应该是获取证书的方法不对,一个证书最大范围也就是配某个通配符域名例如【*.cctv.com】,不能支持多个二级域名的。

    2021-08-15 23:34:09
    赞同 展开评论 打赏
  • 我正在阅读openssl源码,但是还没什么进展...

    2021-08-09 18:59:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载