制作链式证书时是否应该包含根 CA 证书

How*_*ard 6 security linux ssl nginx openssl

我正在使用 Godaddy 证书,通常我会连接证书并制作成链式证书

cat www.example.com.crt sf_bundle.crt > chained.cert
Run Code Online (Sandbox Code Playgroud)

在我的 nginx.conf 中,

ssl_certificate chained.cert
Run Code Online (Sandbox Code Playgroud)

在浏览器中,我看到如下链:

www.example.com
  Starfield Secure Certification Authority
    Starfield Technologies Inc.
Run Code Online (Sandbox Code Playgroud)

很好,一切正常。

今天,我读了一篇来自 CloudFlare [1] 的博客文章,它说:

The lowest hanging fruit in terms of reducing 
the size of these certificates was to remove the 
root certificates from the certificate bundle. 
There's no reason to include these since they should already be 
present in browsers and, even if they're not, the browser won't trust them.
Run Code Online (Sandbox Code Playgroud)

那么,这是否意味着我可以在Starfield Technologies Inc.不影响 SSL 证书有效性的情况下删除它,并且可以获得更好的性能?

[1] http://blog.cloudflare.com/what-we-just-did-to-make-ssl-even-faster

cns*_*nst 2

这取决于签署您的证书的实体类型。

如果它是由根 CA 直接签名的,那么使用您自己的 Web 服务器重新提供此类根 CA 确实没有什么意义。

但是,如果它是由中间 CA 颁发的,并且您没有将其捆绑在您的证书中,那么您可能会面临某些用户收到有关证书被破坏的警告的风险,如果他们以前从未见过这样的中间 CA 。

https://superuser.com/a/524234/180573

如何知道自己处于哪种情况?您可以使用http://www.digicert.com/help/?host=进行测试