我对SSL和证书在服务器和服务器之间的工作方式不是很了解浏览器。所以我在这个网站上写了一些文章 http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html ,无论他们对我说不是很清楚
1) A browser requests a secure page (usually https://).
2) The web server sends its public key with its certificate.
3) The browser checks that the certificate was issued by a trusted party
(usually a trusted root CA), that the certificate is still valid and that the
certificate is related to the site contacted.
4) The browser then uses the public key, to encrypt a random symmetric
encryption key and sends it to the server with the encrypted URL required
as well as other encrypted http data.
5) The web server decrypts the symmetric encryption key using
its private key and uses the symmetric key to decrypt the URL and http data.
6) The web server sends back the requested html document and
http data encrypted with the symmetric key.
7) The browser decrypts the http data and html document using
the symmetric key and displays the information.
浏览器请求安全页面和Web服务器只发送带有没有页面或数据的证书的公钥到浏览器?
如果可能的话,请讨论浏览器请求任何https页面时发生的事情。感谢
答案 0 :(得分:3)
1)浏览器请求安全页面(通常为https://)。
没有。浏览器协商TLS连接,其中执行步骤2和3以及其他一些连接。 然后浏览器请求安全页面,第6步发生。
2)Web服务器使用其证书发送其公钥。
3)浏览器检查证书是否由可信方发出 (通常是受信任的根CA),证书仍然有效且该证书 证书与联系的网站有关。
好到这里。
4和5是完全幻想,但一个共同的错觉。真正发生的是一种密钥协商算法,其精确性取决于密码套件,但从不涉及传输会话密钥。4)然后浏览器使用公钥来加密随机对称 加密密钥,并使用所需的加密URL将其发送到服务器 以及其他加密的http数据。
5)Web服务器使用解密对称加密密钥 它的私钥
并使用对称密钥解密URL和http数据。
6)Web服务器发回所请求的html文档和 使用对称密钥加密的http数据。
7)浏览器使用解密http数据和html文档 对称密钥并显示信息。
正确。
答案 1 :(得分:2)
在发送任何HTTP请求之前,TLS握手发生(并且已完成)。握手涉及在客户端和服务器之间发送并返回的几条消息。
这里有更多detailed description of SSL/TLS handshake。
因此,只有在SSL / TLS层准备就绪后才会发送任何HTTP请求。否则会带来安全风险。