CentOS 6.3の新規インストール、openldap-servers-2.4.23。新しい証明書要求を生成し、証明書に署名し、slapdを開始しました。 ldapsearchは、ldapi:///およびldap:///で応答します。ただし、ldaps:///で要求が行われるとすぐに、slapdプロセスは使用可能なすべてのCPUを消費し、応答しません。
strace -p -ffは、無限ループで次の結果を生成します。
[pid 5978] open("/etc/openldap/certs/server.key", O_RDONLY) = 21
[pid 5978] stat("/etc/openldap/certs/server.key", {st_mode=S_IFREG|0640, st_size=1704, ...}) = 0
[pid 5978] read(21, "-----BEGIN PRIVATE KEY-----\nMIIE"..., 1704) = 1704
[pid 5978] close(21) = 0
[pid 5978] open("/etc/openldap/certs/server.key", O_RDONLY) = 21
[pid 5978] stat("/etc/openldap/certs/server.key", {st_mode=S_IFREG|0640, st_size=1704, ...}) = 0
[pid 5978] read(21, "-----BEGIN PRIVATE KEY-----\nMIIE"..., 1704) = 1704
[pid 5978] close(21) = 0
[pid 5978] open("/etc/openldap/certs/server.key", O_RDONLY) = 21
[pid 5978] stat("/etc/openldap/certs/server.key", {st_mode=S_IFREG|0640, st_size=1704, ...}) = 0
[pid 5978] read(21, "-----BEGIN PRIVATE KEY-----\nMIIE"..., 1704) = 1704
[pid 5978] close(21) = 0
[pid 5978] open("/etc/openldap/certs/server.key", O_RDONLY) = 21
[pid 5978] stat("/etc/openldap/certs/server.key", {st_mode=S_IFREG|0640, st_size=1704, ...}) = 0
[pid 5978] read(21, "-----BEGIN PRIVATE KEY-----\nMIIE"..., 1704) = 1704
[pid 5978] close(21) = 0
[pid 5978] open("/etc/openldap/certs/server.key", O_RDONLY) = 21
[pid 5978] stat("/etc/openldap/certs/server.key", {st_mode=S_IFREG|0640, st_size=1704, ...}) = 0
[pid 5978] read(21, "-----BEGIN PRIVATE KEY-----\nMIIE"..., 1704) = 1704
[pid 5978] close(21)
証明書が破損していないことを確認するために、証明書を再生成しました。喜びはありません。
理解した。どうやらopenldapは、ディレクトリ構造のどこにあるかによって、証明書の読み込みが異なるようです。それらが/ etc/openldap/certsディレクトリにある場合-それはそれらをMozNSSとして扱い、その後、何もロードするのに見事に失敗します。それらが/ etc/pkiにある場合、OpenSSLを使用し、すべてを正常にロードします。