openldap上的每篇文章/ how-to / blog都会将ldap的ldap证书放在/ etc / openldap / cacerts目录中。
我想知道为什么不把证书放在/ etc / pki / tls / certs中,并在/ etc / openldap / cacerts – > / etc / pki / tls / certs之间build立一个符号链接? 这样所有的证书都在系统中的一个地方,而不是分布在各种目录中。
不是特定于openldap,这通常是出于安全原因:
有问题的软件包可能会在/etc做一个chroot到它自己的目录中,然后将无法跟踪被改变的根之外的任何符号链接
该软件可以被编程为特别禁止它首先遵循任何种类的符号链接
这一切都是为了确保任何types的漏洞利用都被限制在一个软件中,而攻击者则更难以访问文件系统上的任意文件。
只要有问题的应用程序和它使用的encryption库能够读取和理解文件,放置常规证书,CA证书和私钥的位置并不重要。 根据您的应用程序(您的案例中的OpenLDAP / slapd)是否与OpenSSL或GnuTLS链接,可能会有各种限制。 应用程序本身也可能存在人为限制,或者由AppArmor或SELinux等安全框架强加。
例如,在Ubuntu 12.04 LTS(服务器)上,在/etc/pki/CA/cacerts.pem查找CA证书的libvirt守护进程似乎无法容忍该文件大于几千字节。 所以不可能给它提供在/etc/ssl/certs/ca-certificates.crtfind的全系统信任的CA证书列表(在CentOS上,相当于/etc/pki/tls/certs/ca-bundle.crt ,如你所说)。 我认为这是GnuTLS(许多其中之一)的限制。
正如我所说:这取决于有问题的应用程序,使用的encryption库和可能的安全框架。 你只能尝试看看有什么工作,什么不工作。