【问题标题】:Making Clients choose preferred SSL/TLS Certificate让客户选择首选的 SSL/TLS 证书
【发布时间】:2017-06-15 16:01:06
【问题描述】:

假设我们有 2 个使用 RSA 的 CA“ACA”和“BCA”ECC,它们都为服务器颁发 TLS 证书。 ACA 受大多数客户信任,而 BCA 仅受少数客户信任。

虽然 ACA 是受信任的,但 RSA 总是需要更多时间。因此,我们希望所有信任 BCA 的客户都首选 BCA 签名的证书,而其他客户则回退到 ACA 的证书。

据我所知,为一个域配置多个证书是可能的。至少在nginx上,但是客户端总是使用我在nginx的snginx.conf配置文件中放了a作为第二个证书入口的证书。

如果可能,服务器是否有可能处理交付 EC 证书,但如果客户端不信任证书,则由 RSA 处理?

【问题讨论】:

  • 客户端可以使用signature_algorithms 扩展来表示他们想要RSA、DSA、ECDSA 等。请参阅RFC 5246, Section 7.4.1.4. Hello Extensions。当 nginx 在您描述的情况下提供不同的证书时,可能是由于 signature_algorithms 扩展。但是签名算法和发行者之间没有联系或关联。为了克服它,您通常要求客户将缺少的 CA 安装到他们的信任库中。
  • 因此,选择使用所提供的两者中的哪一个是客户端的问题。可以通过在服务器上使用单个证书而不是多个证书来保留它,因为没有浏览器实际上会首先查找信任存储中的哪些 CA。

标签: security ssl nginx https


【解决方案1】:

客户端不提供任何它信任的 CA 的信息。这意味着服务器无法根据客户端信任设置来决定提供哪个证书。服务器必须决定使用哪些证书的唯一信息是查看客户端提供的密码,即如果客户端支持 ECDSA 密码,则使用 E​​CC 证书,否则使用 RSA 证书。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    相关资源
    最近更新 更多