如果我的网站使用SSL,客户是否必须做任何事情?

时间:2016-01-29 19:59:38

标签: ssl

我一直在读SSL。它似乎有这个加密的私钥和公钥系统。用户如何获得公钥?我不记得在我去https网站时不得不做任何事情。幕后是否会自动发生在幕后?我的浏览器会自动运行吗?

我还注意到,通过一些Web提供商(例如GoDaddy),您可以获得SSL证书。我的理解是,证书提供商应该为您的公司做背景,看看您是否合法。如果我还不是一家公司,而且我只是想要拥有一个网站的人呢?

1 个答案:

答案 0 :(得分:-1)

不,您的客户通常只是连接到您的网站(通常)。

在幕后,发生了太多事情,就像这样:

  1. 您尝试访问https://yoursite.com - 通过键入https,您的浏览器了解您希望加密连接到此服务器,因此在发送任何信息(即您的HTTP请求)之前,您已经在您和您的服务器之间建立加密连接。

    因此,您的浏览器会探测网络服务器如何进行通信,它会问好并发送SSL / TLS版本并将其支持的密码与一些数据一起用于打开SSL会话。

  2. 网络服务器接收传入连接并回复其支持的加密和密码,更多会话数据及其公钥(证书文件,以及可能验证该证书的证书,叫证书链。)

  3. 客户端检查服务器证书:

    它过期了吗?

    CommonName(和替代品)是否与您愿意访问的主机名匹配? (请注意,客户端没有说明它想要的URL)

    是来自有效的发行人吗?要检查这一点,它可能会通过证书链中的其他证书(证书A由证书C颁发,由证书C颁发...),直到它看到它知道并信任的证书 - 这是已经安装的证书用你的电脑或浏览器。

    如果您认为连接不安全,可能会被浏览器提示(请询问异常或类似的事情)。

    如果它同意连接此证书,则它使用原始证书(作为公钥)来加密新生成的预密钥以进行加密。

  4. 服务器收到预密钥,只能使用它拥有的私钥进行解密(永远不应该共享!!!),然后再谈一点更多与客户建立新的和独特的主秘密。

    客户端和服务器将分别使用此主密钥来生成和交换会话密钥,这些密钥将用于对称加密(这意味着每个人都可以将消息加密到另一个)。

    < / LI>
  5. 只有现在您的浏览器才会加密请求(所有HTTP标头和正文,如果有的话)并将其发送到服务器。

  6. 因此,您需要托管https服务器的是私钥和您的证书(充当公钥)。为了使您的证书受到Web浏览器的信任,它需要由您的浏览器信任的CA(证书颁发机构)签名,这里提供所有商业选项以及免费选项: < / p>

    您可以使用Let's Encrypt生成免费,有效且安全的SSL证书 - 您只需访问您的网站根文件夹。

    请注意,您的服务器可能还需要浏览器中的特定证书(可能是步骤#3.5),但这种情况要少得多,您确实需要在浏览器上安装它,这些是客户端(SSL)证书。

相关问题