我有一个任务,需要更新几个网站上的 SSL 证书,一切进行得很顺利,我测试了一下,正要关闭任务时,我注意到:
#if on nginx prepare your certificate by combining the two files given to
#you by godaddy
cat yourdomain.com.crt gd_bundle.crt > yourdomain.com_combined.crt
godaddy 网站本身并没有提到这一点,但我在其他帖子中发现了这一点,所以我按照上面的建议去做了,但没有看到任何明显的区别。
我很好奇,合并两个 .crt 与仅使用一个 .crt 文件有什么区别?
答案1
因为每个 Web 服务器都需要提供完整的证书链,直到最终主题名称,仅排除其中的第一个证书 - 根 CA 证书。由于许多 CA 使用中间 CA,因此完整证书链通常由 3 个证书组成 - 根 CA、中间 CA 和主题证书。因此,通常 nginx 证书包包含两个按相反顺序排列的证书 - 首先是最终 CN,然后是中间 CA 证书,因为 Web 服务器按照从目标站点的 CN 名称开始的顺序提供证书链。由于大多数 Web 服务器只有两个关于证书的指令 - 证书的路径和其密钥部分,因此您必须将两个证书连接在一个文件中。
仅提供具有最终 CN 的证书不会破坏 TLS 传输,但被认为是一种常见的设置错误,例如著名的Qualys SSL 测试。