【问题标题】:Difference Between SSLCACertificateFile and SSLCertificateChainFileSSLCACertificateFile 和 SSLCertificateChainFile 之间的区别
【发布时间】:2010-12-26 09:05:21
【问题描述】:

我在我的网络服务器上提供 SSL 页面,我有一个问题。 SSLCACertificateFile和SSLCertificateChainFile有什么区别?

当我使用 SSLCertificateChainFile 时,我收到来自日本手机浏览器的警告,但当我使用 PC 浏览器(如 IE、FF)时,没有问题。 另一方面,SSLCACertificateFile 对两种浏览器都没有造成任何问题。

浏览器连接apache有什么区别吗?

【问题讨论】:

  • 太容易了root sig不在手机的root store里很常见

标签: apache ssl ssl-certificate digital-certificate


【解决方案1】:

SSLCertificateChainFile 是一个正确的选择,但该指令变成了obsolete as of Apache 2.4.8。该指令导致列出的文件与证书一起发送到任何连接的客户端。

SSLCACertificateFile(以下简称“CACert”)取代 SSLCertificateChainFile(以下简称“Chain”),并允许使用相关证书签署 client 证书。这种身份验证非常罕见(至少目前如此),如果您不使用它,恕我直言,没有理由通过使用 CACert 而不是 Chain 来增强其功能。另一方面,有人可能会争辩说附加功能没有任何害处,CACert 涵盖了所有情况。两个参数都有效。

不用说,如果您询问证书供应商,他们将始终推动 CACert over Chain,因为它为他们提供了另一件事(客户证书),他们可能会向您出售。 ;)

【讨论】:

  • 实际上要考虑的另一件事是算法。 “但要小心:仅当您使用基于单个(RSA 或 DSA)的服务器证书时,提供证书链才有效。如果您使用的是耦合的 RSA+DSA 证书对,则只有在两个证书实际上使用相同的情况下才有效证书链。否则浏览器会在这种情况下感到困惑。 ----httpd.apache.org/docs/2.0/mod/…
  • @Eddie 正确,尽管我认为重要的是要提到这对两个选项的影响相同。此外,可能值得指出的是,DSA 证书(幸运的是)非常罕见。
【解决方案2】:

实际上,两者都可能是有效的选项。

使用 SSLCertificateChainFile 发布由公共证书颁发机构(VeriSign、RapidSSL 等)签署的证书

使用 SSLCACertificateFile 提供您的“私有”CA,它可以颁发客户端证书,您可以将其分发给某些选定的用户。这些client 证书实际上非常适合身份验证(与基本密码身份验证相比),通常不需要由公共 CA 分发(因此可以节省一些钱)。

因此,如果您想为网站的某些部分添加安全授权,请执行以下操作:

<Directory /var/www/html/authorized>
  SSLVerifyClient require
  SSLVerifyDepth  5

  SSLOptions +StrictRequire
  SSLUserName SSL_CLIENT_S_DN_CN
  SSLRequireSSL
</Directory>

为了简短的解释,SSLUserName SSL_CLIENT_S_DN_CN 会将经过身份验证的用户名设置为证书的 CommonName,而不是整个 x509 '/OU=Foo/CN=...' 主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    • 2015-10-04
    • 2012-08-12
    • 2011-02-18
    • 2019-12-21
    相关资源
    最近更新 更多