web-dev-qa-db-ja.com

OpenLDAP:TLSエラー-8179:ピアの証明書発行者が認識されません

私は証明書とopenldapに精通していません。他の誰かの作品を古いOSからCentOS-6openldap-2.4.23で移植しようとしています。古いOSでは、LDAP接続は問題なく機能していました。 CentOS-6で、単純なバインドを実行すると、次のエラーが発生します。

TLS error -8179:Peer's Certificate issuer is not recognized

私の/etc/openldap/ldap.confには1行あります:

TLS_CACERTDIR   /etc/openldap/certs

その行をコメントアウトして次のファイルをファイルに入れてみましたが、受け取ったエラーメッセージは変わりませんでした。

tls_reqcert allow

また、ldap.confに次の行だけを入れてみましたが、エラーは変わりませんでした。この 質問 にある情報に基づいてこれを試しました。

LDAPTLS_CACERT  /etc/ssl/certs/ca-bundle.crt

次のディレクトリにファイルをコピーしました。

/etc/pki/tls/certs/ca.crt

/etc/pki/tls/certs/server.crt

/etc/pki/tls/private/server.key

openldap-2.4.23を使うしかない。このエラーの原因やトラブルシューティングのために何ができるかについて何か考えはありますか?

前もって感謝します。 SP

7
user3748237

http://www.zytrax.com/books/ldap/ch6/ldap-conf.htmlTLS_CACERTは、クライアントがCA certを含むファイルを指している必要があります。証明書の検証に使用します。サーバーCA [サーバー証明書に署名したCA]が、TLS_CACERTが[あなたの場合は/etc/ssl/certs/ca-bundle.crtを指すファイルに存在することを確認する必要があります。

4
Yuvika

同じエラーが発生しました。私の場合、その理由は、クライアントの/etc/ipa/ca.crtに間違った証明書があったためです。これを修正するために、/ etc/ipa/ca.crtをKDCサーバーからクライアントにコピーしたところ、エラーが消えました。

3
Niko

環境によっては、OpenLDAPは_TLS_CACERTDIR_に設定された値を完全に無視する場合があります。これは、明らかにGnuTLSがそのタイプの証明書ストアをサポートしていないためです。

ldap.conf(5)のマニュアルページから

_   TLS_CACERTDIR <path>
          Specifies the path of a directory that contains  Certifi‐
          cate Authority certificates in separate individual files.
          The TLS_CACERT is always used before TLS_CACERTDIR.  This
          parameter is ignored with GnuTLS.
_

私の場合、GnuTLSが使用されていると思われるので、_TLS_CACERTDIR_は単に何もしません。サーバーの署名CAの証明書を含むファイルを指す_TLS_CACERT_を使用すると、うまくいったようです。

https://serverfault.com/questions/437546/centos-openldap-cert-trust-issues の方がはるかに完全な答えだと思います。

0