- CA 机构生成密钥对:公钥 ca.cer,私钥 ca.key
- 网站(Server 端)生成私钥 cert.key
- 网站将其公钥及网站信息(域名/组织 etc.)提交到 CA 机构,CA 机构结合自己的私钥 ca.key 签发网站证书 cert.cer
- 网站配置 Apache/Nginx 加载 cert.key 和 cert.cer 并运行 HTTPS 模块
- 用户首次通过浏览器访问网站,网站首先返回 cert.cer,由于 cert.cer 使用 CA 机构的私钥签发,因此可以通过保存在用户本地的公钥 ca.cer 进行验证
- 用户验证 cert.cer 和 ca.cer 的有效性。如果验证通过,则得到网站的公钥并以此访问网站;否则,提示用户风险信息
-
用户通过网站的公钥与网站交换对称加密共享密钥,进行正式的 SSL 会话
所以,用户能够与网站建立 SSL 通信的关键在于用户是否拥有 CA 机构的根证书 ca.cer 和网站证书 cert.cer。**用户拿着 ca.cer 与 cert.cer 验证,只有通过后,用户才可以获得网站真实的公钥。