我有一个 Apache、一个 TLS 证书的 ldaprc 文件和一个用于连接到 Active Directory 服务器的 PHP 脚本。
当我启动 Apache 时,它能正确读取 ldaprc 中的所有设置。如果我在 ldaprc 中更改某些内容并重新启动 Apache,设置将按预期重新读取。
但是,如果我注释或删除 ldaprc 中的一行(该行之前指定了证书),然后重新启动 Apache,我的脚本将继续工作,而它不应该工作。这不是 php 脚本的问题,因为如果我删除 ldaprc 并重新启动 Apache,或者修改包含证书的行以指向无效证书,则脚本将无法工作。
我的问题是,Apache 是否有任何 SSL/TLS/证书缓存机制或选项?
我的 ldaprc:
TLS_REQCERT never
TLS_CACERT /x509/certs/ad.pem
TLS_CACERTDIR /x509/certs
不要被路径弄糊涂了,这是一个基于定制的 Linux 发行版。
Apache 是:
[root@localhost]# /www/bin/httpd -v
Server version: Apache/2.2.11 (Unix)
Server built: Apr 5 2011 06:09:43
答案1
如果你不确定问题出在哪里,你可以使用大炮 - strace
,tcpdump
... 对于你的情况:你希望 apache 有一个在重启后保留的缓存。这应该是一个基于文件的缓存。因此,查找 apache 打开的所有文件:
strace -f -e open apache