Chrome DevTools 是不是显示在给定的 GET 或 POST 请求中使用了啥证书

Posted

技术标签:

【中文标题】Chrome DevTools 是不是显示在给定的 GET 或 POST 请求中使用了啥证书【英文标题】:Does Chrome DevTools show what cert was used on a given GET or POST requestChrome DevTools 是否显示在给定的 GET 或 POST 请求中使用了什么证书 【发布时间】:2022-01-24 01:06:32 【问题描述】:

问题描述

我正在尝试访问需要来自浏览器和 Postman 的证书的 REST 端点。

我已经为 Chrome 和 Postman 配置了客户端证书。该证书在 Swagger 页面上使用 Chrome 时有效(使用浏览器弹出窗口选择的 客户端证书),但在使用 Postman 时无效。

所以我的猜测是 Postman 没有使用我配置的证书。我尝试检查 Chrome DevTools Networking 选项卡以查看它是否显示证书正在通过,但它没有。

这就是我的问题。 Chrome(或 Postman)是否能够显示用于给定请求的客户端证书?

我正在寻找类似于将curl --verbose 与客户端证书一起使用的东西。将--verbose 与 curl 一起使用时,客户端和服务器端的证书信息都会转储到控制台以供查看。

Chrome DevTools(或 Postman)是否支持这样的功能?

正在寻找我的问题的答案

在 SO 中搜索 [certificate and debugging] 和 [certificate and google-chrome] 和 [certificate and postman] 我发现:

Testing API's with certificates - 这很有帮助,但没有回答我的问题

How to determine if server has ssl certificate - 没有帮助

need help Debugging SSL handshake in tomcat - 有用但不适用于我的问题

Created self signed Certificate working with curl but not with chrome - 没有帮助

许多其他证书问题,所以也许答案就在那里。如果有,请告诉我。

【问题讨论】:

【参考方案1】:

我发现 Postman 在使用证书时,会在 Postman 控制台输出中包含一个网络部分。

例如,

GET https://example.com//api/my/restEndpoint
401
11 ms
Warning: Unable to verify the first certificate
Network
addresses: …
local: …
remote: …
tls: …
reused: false
authorized: false
authorizationError: "UNABLE_TO_VERIFY_LEAF_SIGNATURE"
cipher: …
protocol: "TLSv1.3"
ephemeralKeyInfo: 
peerCertificate: …

这表明证书不受信任(例如,证书颁发机构未知)。

【讨论】:

以上是关于Chrome DevTools 是不是显示在给定的 GET 或 POST 请求中使用了啥证书的主要内容,如果未能解决你的问题,请参考以下文章

Chrome DevTools 显示一个空的传出二进制 Web 套接字框架,当它不是真的为空时

小技巧|配置好用的Chrome DevTools

为啥vue-devtools chrome插件安装完成了,但是控制台没有显示出来

Chrome DevTools 不显示 .js 文件

使用 Selenium webdriver 运行时是不是可以使用 Chrome 的 devtools?

Chrome devtools 没有显示更少的文件