HTTPS - 浏览器验证服务器 SSL 证书 [重复]

Posted

技术标签:

【中文标题】HTTPS - 浏览器验证服务器 SSL 证书 [重复]【英文标题】:HTTPS - verification of server SSL certificate by the browser [duplicate] 【发布时间】:2021-12-16 02:38:35 【问题描述】:

我对通过网络浏览器(如Firefox/Chrome)验证服务器SSL证书的过程有一个疑问。

我阅读了很多关于最大限度地降低攻击者/黑客应用错误颁发的 CA/中间 CA 证书(即被黑的 CA 或错误地向实际上不应该接收它们的实体颁发证书)风险的机制,例如 HPKP HTTP 标头或证书透明度日志。

根据我读到的解释,潜在的攻击者可能会出示这个错误颁发的证书来冒充终端服务器并劫持来自预期被加密的请求发送者的内容。

但这怎么可能呢?浏览器验证证书的机制是什么?

当我使用编程库通过 HTTPS 执行对 API 的请求时,默认情况下会打开一个选项,以将证书中的“主题”字段与我传递来查询服务的 URL 进行比较。如果比较失败,则通信中断。可以绕过此设置(在 Apache HTTP 中称为 NoopH​​ostnameVerifier)。如果我理解得很好,这个功能会导致,如果我拥有域(例如“blablabla.com”)并为域“xyxyxy.xom”提供错误颁发的证书,并带有 CA 的有效签名,Http Client 将由于不匹配而阻止连接具有请求 URL 的证书中的主题。

它在浏览器中是如何工作的?浏览器是否对 x509 证书中的主题和地址栏中的 URL 进行比较?如果不是,为什么浏览器不做这个比较?如果是,浏览器会阻止此请求吗?还是只是给出一些警告?

换句话说:正确验证 CA 的签名是确认证书和整个服务器对证书的响应有效的唯一条件吗? X509中的“Subject”字段与URL地址栏的不匹配在这种情况下被浏览器忽略了吗?

【问题讨论】:

【参考方案1】:

浏览器在接受服务器证书之前会进行非常广泛的检查,包括链验证、名称比较等。这里有一个相关线程可以回答您的问题:https://security.stackexchange.com/questions/56389/ssl-certificate-framework-101-how-does-the-browser-actually-verify-the-validity

【讨论】:

以上是关于HTTPS - 浏览器验证服务器 SSL 证书 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

求助delphi实现ssl验证客户端证书

关于网站服务器的https访问,真的需要购买证书吗

申请https证书需要注意的4大问题

SSL证书

手机浏览器自签ssl证书变为可信任

一般的SSL证书二级域名可以使用吗?