这关于该指令的文档声明如下:
此目录中的文件必须采用 PEM 编码,并通过哈希文件名访问。因此,通常您不能只将证书文件放在那里:您还必须创建名为 hash-value.N 的符号链接。并且您应始终确保此目录包含适当的符号链接。
我对此有两个疑问:
- 实践:文件名中的 .N 部分有何意义?我该如何决定赋予它什么值?
- 概念:为什么 Apache 不只是扫描指定目录中的证书文件?我是否遗漏了计算和记住证书哈希值所提供的某些属性?
答案1
实际的:理论上,两个不同的证书可能被哈希化为相同的值。在这种情况下,使用扩展名可以保留这两个证书。只要只有一个证书使用该哈希值,扩展名就无关紧要,您可以选择任何您喜欢的数字。(我不相信我见过有人使用 0 以外的任何数字,但没有规则禁止它。)
概念:哈希基于证书主题名称。使用它代替文件名的目的是,当程序(在本例中为 apache)需要查找证书时,它可以请求证书主题名称的哈希,而不必保留哪个文件包含哪个证书主题名称的内部表。
man x509
并寻找hash
会给你多一点信息,但不会太多。
(此外,您实际上并不需要符号链接 - 您也可以仅通过其哈希名称来命名证书文件。但是,拥有指向“subjectname.pem”的符号链接当然会让我们人类更容易弄清楚哪个证书是哪个。)