SSL如何真正起作用?

时间:2009-01-22 19:41:54

标签: ssl ssl-certificate

SSL如何运作?

客户端(或浏览器?)和服务器(或Web服务器?)上安装的证书在哪里?

当您将URL输入浏览器并从服务器获取页面时,信任/加密/身份验证过程如何开始?

HTTPS协议如何识别证书?当所有信任/加密/身份验证工作的证书都工作时,为什么HTTP不能使用证书?

4 个答案:

答案 0 :(得分:133)

答案 1 :(得分:46)

HTTPS是 HTTP SSL(安全套接字层)的组合,用于在客户端(浏览器)和Web服务器之间提供加密通信(此处托管应用程序)。

为什么需要?

HTTPS加密通过网络从浏览器传输到服务器的数据。因此,没有人可以在传输过程中嗅探数据。

如何在浏览器和Web服务器之间建立HTTPS连接?

  1. 浏览器尝试连接到https://payment.com
  2. payment.com服务器向浏览器发送证书。此证书包含payment.com服务器的公钥,以及该公钥实际属于payment.com的一些证据。
  3. 浏览器验证证书以确认其具有适用于payment.com的公钥。
  4. 浏览器选择一个随机的新对称密钥K,用于连接到payment.com服务器。它在payment.com公钥下加密K.
  5. payment.com使用其私钥解密K.现在浏览器和支付服务器都知道K,但没有其他人知道。
  6. 任何时候浏览器都想向payment.com发送内容,它会在K下对其进行加密; payment.com服务器在收到后对其进行解密。任何时候,如果payment.com服务器想要向您的浏览器发送内容,它都会在K下加密它。
  7. 此流程可以通过下图表示: enter image description here

答案 2 :(得分:3)

我写了一篇小博客文章,简要讨论了这个过程。请随便看看。

SSL Handshake

同样的小片段如下:

"客户端通过HTTPS向服务器发出请求。服务器发送其SSL证书+公钥的副本。在使用其本地可信CA存储库验证服务器的身份之后,客户端生成秘密会话密钥,使用服务器的公钥对其进行加密并发送。服务器使用其私钥解密秘密会话密钥,并向客户端发送确认。已建立安全通道。"

答案 3 :(得分:0)

Mehaase已经详细解释了它。我将把这2美分加到这个系列中。我有许多围绕SSL握手和证书的博客文章。虽然大部分内容围绕IIS Web服务器,但该帖子仍然与SSL / TLS握手有关。这里有一些供您参考:

  

不要对待证书& SSL 作为一个主题。将它们视为两个不同的主题,然后尝试查看它们的工作原理。这将有助于您回答这个问题。

通过证书存储建立通信方之间的信任

SSL / TLS通信仅基于信任。互联网上的每台计算机(客户端/服务器)都有一个它维护的根CA和中间CA的列表。这些是定期更新的。在SSL握手期间,这用作建立信任的参考。例如,在SSL握手期间,当客户端向服务器提供证书时。服务器将尝试确认颁发证书的CA是否存在于其CA列表中。当它无法执行此操作时,它声明无法进行证书链验证。 (这是答案的一部分。它还为此查看了 AIA 。)客户端也对它在Server Hello中收到的服务器证书进行了类似的验证。 在Windows上,您可以看到客户端和服务器的证书存储区。服务器通过PowerShell。从PowerShell控制台执行以下操作。

  

PS证书:> ls位置:CurrentUser StoreNames:{TrustedPublisher,ClientAuthIssuer,Root,UserDS ...}

     

位置:LocalMachine StoreNames:{TrustedPublisher,   ClientAuthIssuer,远程桌面,Root ...}

像Firefox和Opera这样的浏览器并不依赖于底层操作系统来进行证书管理。他们维护自己独立的证书商店。

SSL握手使用Symmetric& amp;公钥加密。默认情况下会发生服务器验客户端身份验证是可选的,取决于服务器端点是否配置为对客户端进行身份验证。请参阅我的博文,因为我已经详细解释了这一点。

最后针对此问题

  

HTTPS协议如何识别证书?当所有信任/加密/认证工作的证书是什么时,为什么HTTP不能使用证书?

证书只是一个文件,其格式由X.509标准定义。它是一个电子文档,证明了通信方的身份。 HTTPS = HTTP + SSL 是一种协议,它定义了2方如何相互通信的准则。

更多信息

  • 为了了解证书,您必须了解证书,并阅读有关证书管理的信息。这些很重要。
  • 一旦理解了这一点,就继续进行TLS / SSL握手。您可以参考RFC以获取此信息。但它们是定义指南的骨架。有几个博客帖子,包括我的详细解释。

如果完成上述活动,那么您将对证书和SSL有一个公平的理解。