【问题标题】:Browser steps when opening HTTPS page打开 HTTPS 页面时的浏览器步骤
【发布时间】:2012-05-15 21:30:25
【问题描述】:

我想知道浏览器在打开 HTTPS 页面时执行的步骤,以深入了解双方(服务器和客户端)需要执行的每个操作。 我知道它的基本步骤,但我想了解更多细节。我在 Google 中找到的链接描述的是一般信息,而不是详细信息。

有没有可以阅读相关信息的来源。

我一直在考虑寻找 Mozilla Firefox 的来源,但之前决定在这里询问。

谢谢。

【问题讨论】:

  • 您找到了哪些链接(以便我们知道哪些细节对您来说不够详细)?

标签: ssl https


【解决方案1】:

HTTPS 在RFC 2818 中定义。简而言之,浏览器首先与服务器建立 SSL/TLS 连接,然后在此连接中发送 HTTP 请求/响应。

为了建立 SSL/TLS 通道,客户端启动握手,在此期间服务器发送其 X.509 证书。除了 SSL/TLS 握手机制之外,浏览器还根据它拥有的信任锚列表(受信任的证书)和它尝试访问的名称(URL 中的主机名必须与证书匹配,如 @ 中定义的那样)验证证书987654322@)。其中大部分通常在 SSL/TLS 堆栈中实现,但一些浏览器可以让您通过添加异常(有时是永久异常)来绕过这一点,因此浏览器还有一个备用机制,以防 SSL/TLS 堆栈无法接受证书成功。

SSL/TLS 协议(及其握手)在 SSLv3TLS 1.01.11.2 中定义。

使用服务器证书中的服务器公钥,客户端和服务器能够执行经过身份验证的密钥交换,之后他们拥有一个共同的预主密钥。主密钥和用于加密应用程序数据的共享对称密钥都是从该预主密钥派生的。

用于此经过身份验证的密钥交换的机制depend on the cipher suiteTLS specification itself有更多详情。

如果你想通过例子来学习,值得看一下 Wireshark 示例数据(如this answer 所示)。

The First Few Milliseconds of an HTTPS Connection”也应该是有趣的。

【讨论】:

  • 谢谢布鲁诺!您发布的这些链接是无价的! Wireshark 的例子绝对是我一直在寻找的!再次感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 2019-07-30
  • 2014-07-30
  • 2012-04-21
  • 2017-03-04
  • 2012-02-05
相关资源
最近更新 更多