web-dev-qa-db-ja.com

期限切れのUbuntuOpenLDAPSSL証明書を更新するにはどうすればよいですか

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を復元する必要がありますか?

3
Zhenya

これを修正するために行われた2つのこと... 1)ldap1サーバーの新しいキー/証明書のペアを作成します。 2)最近の** slapcat ** b/uからLDAPを復元します。

0
Zhenya

ここにはいくつかの可能性があります。

新しい証明書は本当に有効で、発行する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つ以上のファイルを破損することに成功しました。私はバックアップからの復元と言います。

2
daff

クイックグーグル検索がOpenLDAPメーリングリストで このスレッド を見つけました。そこにあなたの問題に関連するものはありますか?

2つの提案があります:

  • Openldapを実行しているユーザーに、証明書とキーを読み取る権限があるかどうかを確認します
  • 発行するCA証明書を_newcert.pem_ファイルに追加(または追加)します
  • ldd $(which slapd)を試して、OpenLDAPが「gnutls」に対してリンクされていないかどうかを確認してください。これにより、ルート証明書が_newcert.pem_に入る順序が決まる場合があります。
1
chutz