如果我的站点使用SSL,客户端需要做什么吗?

如果我的站点使用SSL,客户端需要做什么吗?,ssl,Ssl,我一直在读SSL。它似乎有这个用于加密的私钥和公钥系统。用户如何获取公钥?我不记得当我访问https网站时,我需要做什么。对我来说,幕后发生的事情是自动发生的吗?我的浏览器是否自动运行 我还注意到,通过一些网络提供商(例如GoDaddy),您可以获得SSL证书。我的理解是,证书提供商应该对您的公司进行背景调查,以了解您是否合法。如果我还不是一家真正的公司,而我只是一个想拥有一个网站的人呢?不,你的客户通常只是连接到你的网站(通常) 在幕后发生的事情太多了,是这样的: 您尝试访问-通过键入http

我一直在读SSL。它似乎有这个用于加密的私钥和公钥系统。用户如何获取公钥?我不记得当我访问https网站时,我需要做什么。对我来说,幕后发生的事情是自动发生的吗?我的浏览器是否自动运行


我还注意到,通过一些网络提供商(例如GoDaddy),您可以获得SSL证书。我的理解是,证书提供商应该对您的公司进行背景调查,以了解您是否合法。如果我还不是一家真正的公司,而我只是一个想拥有一个网站的人呢?

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

在幕后发生的事情太多了,是这样的:

  • 您尝试访问-通过键入https,您的浏览器了解您希望与此服务器建立加密连接,因此在发送任何信息(即HTTP请求)之前,您必须在您与服务器之间建立加密连接

    因此,您的浏览器会探测Web服务器,了解它们如何进行通信,它会打招呼,并发送它支持的SSL/TLS版本和密码,以及一些用于打开SSL会话的数据

  • Web服务器接收传入连接并使用其支持的加密和密码、更多会话数据及其公钥(证书文件,可能还有验证该证书的证书,也称为证书链)进行答复

  • 客户端检查服务器证书:

    过期了吗

    CommonName(和备选方案)是否与您愿意访问的主机名匹配?(请注意,客户机没有说明要获取哪个URL)

    是否来自有效的发行人?要检查这一点,它可能会检查证书链中的其他证书(证书A由证书C颁发的证书B颁发…),直到它看到它知道并信任的证书-这是一个已随计算机或浏览器安装的证书

    如果浏览器认为连接不安全,可能会提示您(询问例外情况或类似情况)

    如果它同意连接此证书,那么它将使用原始证书(作为公钥)对新生成的预密钥进行加密

  • 服务器接收预密钥,该密钥只能通过使用其拥有的私钥进行解密(并且永远不应共享!!!),然后与客户端进行更多对话,以建立一个新的唯一主密钥

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

  • 只有现在,浏览器才会加密请求(所有HTTP头和正文,如果有)并将其发送到服务器

  • 因此,托管https服务器所需的只是私钥和证书(充当公钥)。为了让web浏览器信任您的证书,它需要由您的浏览器信任的CA(证书颁发机构)签名,这里有所有的商业选项和免费选项:

    您可以使用生成免费、有效和安全的SSL证书-您只需要访问您的网站根文件夹



    请注意,您的服务器可能还需要在您的浏览器中安装特定的证书(可能是第3.5步),但这并不常见,您确实需要在您的浏览器上安装它,这些是客户端(SSL)证书。

    为什么要投否决票?这个答案有什么问题吗?