Apache SSL conf 上的 SSLCACertificateFile 参数有些地方我不太明白。例如,我有一个 ROOT 证书“A”,它颁发了一个中间证书“B”。然后,我使用 B 生成了几个叶证书,比如“L1”、“L2”。
现在,根据文档,如果我只想信任 L1 和 L2,我应该将“B”和“A”放入 SSLCACertificateFile 指向的文件中(如果我只放入证书“B”,Apache 就会出现无法找到颁发者的错误)。
现在,让我们生成另一个证书“C”,它源自“A”(根)。Apache 会信任使用证书 C 的对等方吗?对我来说,答案是“是的,它会”,因为 Apache 会在 SSLCACertificateFile 中找到“C”的颁发者,它是“A”!但我不想信任 C,我只想信任 L1 和 L2。
我是否遗漏了什么?
非常感谢!
答案1
因此,如果我理解正确的话,这是您的证书结构:
> ROOT cert A
|--> Intermediate Cert B
|--> Leaf Certificate L1
|--> Leaf Certificate L2
|--> Certificate C
不幸的是,如果您希望浏览器只信任 L1 和 L2,那么证书 C 将需要由不同的根证书进行签名。
这是证书的固有特性决定的。当您信任根证书 A 时,您实际上是在说:“信任此证书签名的所有内容。”它具有信任中间证书 B 的预期效果,如您所愿,但您不能说“不信任任何其他内容”。