私はLDAPを動作させ、数日間セットアップすることを試みています。本当の頭を悩ませるのは、TLSの設定に至るまですべてがうまくいったことです。私は公式のUbuntuドキュメントサイトの このガイド を使用していました。
これを実行すると、非常に多くのエラーが発生し、slapdを再起動できなくなりました。
エラーのほとんどはapparmorがコンピューターの一部へのアクセスを許可していないことに関係していますが、特に1つのエラーが繰り返し発生し続けました。
TLS init def ctxが失敗しました:-1
完全に困惑!
同じエラーが発生しましたが、slapdがTLSに使用される秘密鍵ファイルの読み取り権限を持っていることを確認することで修正しました
Sudo usermod -a -G ssl-cert openldap
私はしばらくの間、OPが彼の回答で言及したapparmorの要素をいじりましたが、すべてのapparmorエラーを解消した後でも、slapdが開始されませんでした。
答えは、私が従ったガイドで与えられた指示は、使用可能なTLS証明書を生成しなかったということでした。生成された証明書を他のサービス(dovecotとpostfix)で使用しようとして失敗したため、これをテストしました。
私は結局 このガイド を使用して、公式のUbuntuドキュメントから自己署名CAを構成しました(OpenLDAPドキュメントで提案されています)。これにより作成されるキー/証明書は完全に機能し、TLS/SSL対応のすべてのサービスに同じ証明書/キーを使用することもできます。これは内部で使用するため、すべて自己署名されていますが、より簡単に作成するオプションを提供しています。
Apparmorの問題も非常に奇妙でした。 p11-kitとpkcs11で多くのエラーが発生しました。いくつかの調査を行ったところ、これらは証明書に集められたツールであるように見えました。 /etc/apparmor.d/local/usr.sbin.slapdファイルに次の行を追加しました。
/usr/share/p11-kit/modules/ r,
/usr/share/p11-kit/modules/* r,
/usr/lib/x86_64-linux-gnu/pkcs11/ m,
/usr/lib/x86_64-linux-gnu/pkcs11/* m,
これで、TLSを使用できるようになり、sldapサーバーが問題なく起動します。
これが誰かの役に立つことを願っています。