mod_ssl SSLCACertificatePath正确用法或处理多个可接受的客户端证书CA的最佳方法是什么


9

我正在尝试使用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证书,就我而言,这显然是前进的正确方法。

Answers:


5

如果您不清楚如何创建以哈希命名的符号链接,我的建议是使用CACertificatePath,而是使用CACertificateFile。(实际上,这通常是我的建议:CACertificateFile 如果您拥有很多经常更改的CA证书,但是正确维护a 可能会稍微多一些工作,但是您可能不应该拥有很多CA证书,而且它们也无论如何也不应更改。 。)此外,所引用的Makefile似乎已经从Apache的发行包中消失了(并且普遍缺乏公众的抗议可能表明有多少人正在使用存储证书的“路径”方法:)。

综上所述,如果您仍然想要执行此操作,则可以按照DerfK的说明进行操作(获取旧的Makefile,或编写openssl x509 -noout -hash针对所有证书文件运行并创建适当命名的符号链接的脚本/ makefile )。


谢谢您的回答。不幸的是,我们将拥有多个CA证书,并且它们将不断变化。您知道如何在一个文件中拥有多个证书吗?它就像将证书从一个文件剪切并粘贴到具有所有证书的另一个文件中一样简单吗?
hooknc 2011年

1
实际上,它就像剪切和粘贴一样简单ca-bundle.crt-Apache 1.x时代曾经在mod_ssl中包含它(并且仍在certifie.com/ca-bundle/ca-bundle.crt.txt上可用)。为了您的理智,我将对该文件进行注释,以便在以后何时需要更改它们时,告诉哪个证书块属于哪个CA。
voretaq7 2011年

好消息。我们很可能会采用此解决方案。幸运的是,其他人将负责生成该.crt文件。再次感谢您的宝贵时间。
hooknc 2011年

4

我发现了一个与此有关的开放错误。除了下载错误中提到的旧版modssl.org并从中获取Makefile之外,似乎还可以从哈希值中获得哈希值,openssl x509 -in foo.crt -noout -hash尽管不清楚“ .N”部分指的是什么(也许这是为了哈希冲突(例如,具有哈希12345678的第一证书具有指向它的符号链接12345678.1,具有相同哈希的第二证书使用.2或以.0开头)

如果您Makefile.crt从旧的modssl中获取文件,我相信您要做的就是将包含所有证书的文件拖放到该文件夹​​中,然后make -f Makefile.crt在该文件夹中运行。


谢谢您的回答。指向该错误报告确实很有帮助。这是错误中提到的资源下载的直接链接:modssl.org/source/mod_ssl-2.8.31-1.3.41.tar.gz 我确实查看了Makefile.crt,我相信您是正确的关于编号方案,但我不太擅长* nix脚本。<hash> .1,<hash> .2,<hash> .3等...我确实尝试使用您建议的命令,然后将符号链接命名为hash,一切似乎都可以正常工作。我现在必须尝试使用​​多个CA文件。
hooknc 2011年

1
编号确实以开头.0
拉曼

1
这是Makefile从tar.gz中已经提取的:gist.github.com/rocketraman/9228a42b78e094b3c2218f6e57844ee0
拉曼

make -f Makefile.crt在带有证书的文件夹中运行会产生Makefile.crt ... Skipped错误。
严重
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.