【问题标题】:How secure is the https connection if the client not passes certificate如果客户端不通过证书,https 连接的安全性如何
【发布时间】:2016-04-26 10:58:37
【问题描述】:

我们有一个运行在 linux 机器上的 web 服务器,我们在 ssl.conf 文件中将“SSLVerifyClient”配置为“require”。

这是否需要从 Web 浏览器(如 firefox 或 chrome)使用服务的客户端需要证书。

如果是,那么不可能将客户端证书分发给每个用户,因为可能有数千个用户,如何克服这个问题。

如果不是,那么通过网络传递的数据如何安全?我知道证书有助于加密数据,这样没有证书的人就无法读取数据。

请帮助我澄清我的疑问

【问题讨论】:

标签: ssl https openssl


【解决方案1】:

如果不使用客户端证书,https连接还是安全的:

  • 只有客户端和服务器可以读/写内容
  • 服务器的身份由证书颁发机构确保

客户端证书仅在连接开始时为您提供客户端身份验证。为了加密数据,一开始使用服务器的公钥(见公钥加密)。

如果您在登录/密码提交后使用设置的cookies识别客户端,它仍然是安全的:您已经识别了客户端。

【讨论】:

  • 即使没有客户端证书,它仍然是安全的,即没有其他人可以正确读取数据。据我说,客户端证书将在发送到服务器之前对数据进行加密。如果没有客户端证书,那么加密将如何发生。在不期望客户端发送证书的情况下,我是否需要将 SSLVerifyClient 更改为 False。感谢您的帮助
  • @RajeshKumar 他已经回答了所有这些问题。以“根据我”开头的部分不正确。
  • @RajeshKumar 客户端证书只为您提供客户端身份验证。塞弗。客户端使用服务器的公钥对数据进行加密。
  • @Tom 不,它没有。 SSL 通过协商的会话密钥使用对称加密。
  • @EJP 是的,但是对称密钥的交换是通过非对称加密完成的。我过于简单了,抱歉。
【解决方案2】:

当 SSLVerifyClient 设置为 require 时,客户端必须通过客户端证书。您将通过 OpenSSL 生成这些,并使用您通过 SSLCACertificateFile 安装的证书颁发机构对其进行签名。

如何分发这些证书是您必须自己解决的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多