security - 数字证书在用于保护网站(使用 SSL)时如何工作?

标签 security ssl certificate

请帮助我了解这个过程是如何进行的。我知道网络浏览器包含证书颁发机构 (CA) 的根证书,如 verisign、Entrust、Comodo 等,但是当用户访问安全页面时究竟发生了什么? Web 浏览器是向 CA 的服务器发送请求来验证证书,还是仅使用 CA 的根证书(在浏览器中)来验证证书?

我使用了一些 HTTP 嗅探器并登录到 gmail(登录页面是安全的)但没有看到请求转到除 google 之外的任何网站,这是否意味着它只使用 CA 的根证书?

最佳答案

证书颁发机构颁发使用私钥 签名的证书。您的浏览器为一堆受信任的 CA 存储了相应的公钥。当您收到安全交易请求时,您的浏览器会使用公钥检查证书的根目录(由您要连接的主机提供),以确保它确实是由匹配的私钥签名的。

主机存储由受信任的第三方 (CA) 签署的证书,您的浏览器存储同一第三方的公钥。当交易开始时,主机只需要出示该证书供您的浏览器进行验证。无需受信任的第三方进行交易时干预。

这与 PGP 等系统不同,在 PGP 系统中,您必须联系第三方才能获得与您通信的任何人的公钥。这些系统的工作方式可能不同,因为您使用 PGP 加密/解密数据。使用证书,您所做的只是验证身份。

关于security - 数字证书在用于保护网站(使用 SSL)时如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/788808/

相关文章:

c - 如何使用用户密码进行 aes 加密?

apache 2.4.6 代理 https 到 http Tomcat 7.0.68

android - 在系统上下文中的 Android 上安装 CA 证书

security - 为什么在生产中使用使用 MakeCert 工具制作的证书不好?

security - Erlang 中的 SSL 是否保证包含在每个进程/客户端/连接中?

security - tomcat 中是否存在对接受盐的 JDBCRealm 的支持?

java - 在设置 javax.net.ssl.trustStore 之前加载的默认信任库

java - 在 Windows JRE 中导入 StartCom CA 证书

php - PHP 安全培训类(class)(或认证)

ssl - Python ssl 客户端无法使用 ssl 连接到 socketserver