OpenLDAPサーバーで使用されているSSL証明書を取り消して更新する手順を実行しましたが、slapdを開始できません。
使用したコマンドは次のとおりです。
openssl verify hostname_domain_com_cert.pem
証明書の有効期限が切れていることを確認しましたが、「OK」
使用していた証明書を取り消しました。
openssl ca -revoke /etc/ssl/certs/hostname_domain_com_cert.pem
取り消しは正常に機能しました。
キーファイルを入力として渡すことにより、新しい証明書要求を作成しました。
openssl req -new -key hostname_domain_com_key.pem -out newreq.pem
新しく作成したリクエストファイル「newreq.pem」を使用して、新しい証明書を生成しました
openssl ca -policy policy_anything -out newcert.pem -infiles newreq.pem
Cn = config.ldifファイルを調べて、キーと証明書の場所を見つけ、新しく日付が付けられた証明書を必要なパスに配置しました。
それでも私たちは平手打ちを始めることができません:
サービススラップスタート
このメッセージが表示されます:
OpenLDAPの開始:slapd-失敗しました。 操作は失敗しましたが、出力は生成されませんでした。何がうまくいかなかったのか のヒントについては、システムのログファイル(例:/ var/log/syslog)を参照するか、 「slapd-d16383」などのデバッグモードでデーモンを実行してみてください(警告: これにより大量の出力が作成されます。 以下に、このスクリプトが slapdを実行するために使用するコマンドラインオプションを示します。 デバッグ出力を確認したい場合は、これらのオプションを指定することを忘れないでください: slapd -h'ldap:/// ldapi:/// ldaps:/// '-g openldap- u openldap -F /etc/ldap/slapd.d/
これが/ var/log/syslogで見つかったものです
10月23日20:18:25ldap1 slapd [2710]:@(#)$ OpenLDAP:slapd 2.4.21(2011年12月19日15:40:04)$#012#011buildd @ allspice:/ build/buildd/openldap-2.4.21/debian/build/servers/slapd 10月23日20:18:25ldap1 slapd [2710]:メイン:TLS init def ctxが失敗しました:-1 10月23日20:18:25 ldap1 slapd [2710]:slapdが停止しました。 10月23日20:18:25ldap1 slapd [2710]:connections_destroy:破棄するものはありません。
新しいldap1キー/証明書のペアを生成した後、slapdを開始しようとするたびにこれを取得します
10月24日08:38:12ldap1 slapd [5461]:@(#)$ OpenLDAP:slapd 2.4.21(2011年12月19日15:40:04)$#012#011buildd @ allspice:/ build/buildd/openldap-2.4.21/debian/build/servers/slapd 10月24日08:38:12ldap1 slapd [5463]:hdb_db_open:データベース "cn = accesslog"を開くことができません、エラー13。 backup! Oct 24 08:38:12 ldap1 slapd [5463]:bdb(cn = accesslog):txn_checkpointインターフェイスには、トランザクションサブシステム用に構成された環境が必要です Oct 24 08:38:12 ldap1 slapd [5463]:bdb_db_close:データベース "cn = accesslog":txn_checkpoint failed:無効な引数(22)。 10月24日08:38:12ldap1 slapd [5463]:backend_startup_one(type = hdb、suffix = " cn = accesslog "):bi_db_openが失敗しました! (13) Oct 24 08:38:13 ldap1 slapd [5463]:bdb_db_close:データベース "cn = accesslog":alock_close failed Oct 24 08:38:13 ldap1 slapd [5463]: slapdが停止しました。
バックアップからLDAPを復元する必要がありますか?
これを修正するために行われた2つのこと... 1)ldap1サーバーの新しいキー/証明書のペアを作成します。 2)最近の** slapcat ** b/uからLDAPを復元します。
ここにはいくつかの可能性があります。
新しい証明書は本当に有効で、発行するCA証明書に対して検証可能ですか?
OpenLDAP設定の属性olctlscacertificatefile
の値は何ですか?あなたの場合、それはあなたのルートCA証明書、つまりサーバーの証明書に署名したものを指しているべきです。ただし、適切な値は/etc/ssl/certs/ca-certificates.crt
であり、信頼できるすべてのCA証明書が連結されています。詳細については、こちらを参照してください: http://manpages.ubuntu.com/manpages/precise/man8/update-ca-certificates.8.html
また、権限の問題を示している可能性もあります。キーと証明書(および親パス)はopenldap
ユーザーが読み取ることができますか?キーと証明書のパスは、AppArmorが文句を言わないようなものですか? slapd
がAppArmorが許可するパスの外でファイルを読み取ろうとしたことを示すメッセージがないか/var/log/kern.log
を確認してください。
編集:更新された質問によると、元の質問とは関係がないようですが、/var/lib/ldap
の権限を台無しにしたか、実際に/var/lib/ldap
内の1つ以上のファイルを破損することに成功しました。私はバックアップからの復元と言います。
クイックグーグル検索がOpenLDAPメーリングリストで このスレッド を見つけました。そこにあなたの問題に関連するものはありますか?
2つの提案があります:
newcert.pem
_ファイルに追加(または追加)しますldd $(which slapd)
を試して、OpenLDAPが「gnutls」に対してリンクされていないかどうかを確認してください。これにより、ルート証明書が_newcert.pem
_に入る順序が決まる場合があります。