“您的连接不是私密连接”为什么会出现这样的提示?
如果你使用的是谷歌浏览器,那么除了“您的连接不是私密连接” 之外,你可能还见过其他提示:
此网页包含重定向循环
此网站无法提供安全连接;网络连接错误发送的响应无效
您的时钟慢了,您的时钟快了
服务器的瞬时 Diffie-Hellman 公共密钥过弱
无法显示此网页
您计算机上的软件导致 Chrome 无法安全地连接到网络
删除过期的 DigiCert 证书
你可以猜测到,要正确地连接到服务器并不像看起来那么简单,而是需要经过一系列谨慎地校验,既要保证你访问的是正确的服务器,也要保障访问过程中数据不被监听或者篡改。我们需要知道:
用户访问 github.com 的时候, github.com 只允许使用 HTTPS 进行加密连接(你可以使用浏览器的开发者工具,看到 github.com 的请求带有 HTTP 头部 Strict-Transport-Security: max-age=31536000; includeSubdomains; preload )
当使用 HTTPS 建立加密连接的时候,浏览器会要求服务器提供 SSL/TLS 证书,然后浏览器使用自带的数字证书认证机构(简称 CA)的公钥,对服务器提供证书中的 CA 的数字签名进行验证。
《图解 HTTP》中有一个非常形象的插图描述了整个流程。
《图解 HTTP》插图
之所以会出现“您的连接不是私密连接”的错误,是由于服务器提供的证书没有通过验证。
以下几种原因会导致证书没有通过验证:
证书过期或者不符合要求
DNS 解析出错
正确的 IP 地址,错误的服务器
同时,服务器证书建立网站和用户之间的安全传输通道,在已部署SSL/TLS证书的网站无论提交的是付款详情、登录密码、还是其他基于互联网的交易信息都将被加密后安全传输。