我正在尝试使用 mod_proxy SSLCACertificatePath 指令,但对于如何正确使用它有点困惑。
以下两个链接解释了 SSLCACertificatePath 指令:
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcacertificatepath
http://www.modssl.org/docs/2.8/ssl_reference.html#ToC13
我不太清楚如何创建散列符号链接。第二个链接说明使用 apache make 文件,但我完全不知道那里到底说了什么。
任何友好的指导都将不胜感激。
感谢您的时间。
更新
我的问题的目的是弄清楚如何处理多个 CA 来验证最终用户客户端证书。我没有意识到可以在一个文件中使用多个 pem 证书,而这对我来说显然是正确的前进方式。
答案1
如果你不清楚如何创建哈希命名的符号链接,我的建议是不是使用CACertificatePath
,而是使用CACertificateFile
。(实际上,这是我的一般建议:CACertificateFile
如果您拥有大量经常更改的 CA 证书,则正确维护 可能需要稍微多一点的工作,但您可能不应该拥有大量 CA 证书,而且它们无论如何也不应该发生太大的变化……)此外,似乎引用的 Makefile 已从 Apache 的分发 tarball 中消失(公众普遍缺乏抗议可能表明有多少人正在使用“路径”方法存储证书 :)。
尽管如此,如果您仍然想这样做,您可以按照 DerfK 所说的进行操作(获取旧的 Makefile,或者编写自己的脚本/makefile,openssl x509 -noout -hash
针对您的所有证书文件运行并创建适当命名的符号链接)。
答案2
我发现了一个打开错误关于这一点。除了下载错误中提到的旧 modssl.org 版本并从中获取 Makefile 之外,似乎还可以从中获取哈希值,openssl x509 -in foo.crt -noout -hash
尽管不清楚“.N”部分指的是什么(也许这是针对哈希冲突的(例如,第一个哈希为 12345678 的证书有一个指向它的符号链接 12345678.1,第二个具有相同哈希的证书使用 .2?或者也许它以 .0 开头?)
如果您Makefile.crt
从旧的 modssl 获取文件,我相信您会将其放入包含所有证书的文件夹中,然后make -f Makefile.crt
在该文件夹中运行。