web-dev-qa-db-ja.com

TLS:ホスト名がピア証明書のCNと一致しません

startTLS経由でLDAPに接続しようとしていますが、問題が発生しています。このガイドを順を追って説明しました https://help.ubuntu.com/12.04/serverguide/openldap-server.html#openldap-tls とLDAPは、「ldapsearch- Ubuntu Zever 12.04のxZZ -h 172.25.80.144 "

しかし、私のUbuntuデスクトップ11.04クライアントでは、次のエラーが発生します。

ldapsearch -x -H 172.25.80.144 -ZZ 
ldap_start_tls: Connect error (-11)
                additional info: **TLS: hostname does not match CN in peer certificate**

サーバー/etc/ldap/ldap.conf

 BASE dc=prueba,dc=borja
 URI  ldap://prueba.borja
 SIZELIMIT 12
 TIMELIMIT 15
 DEREF     never
 TLS_CACERT /etc/ssl/certs/ca-certificates.crt

クライアント/etc/ldap.conf

 ssl start_tls
 tls_checkpeer no

/etc/ldap/ldap.conf

 BASE dc=prueba,dc=borja
 URI  ldap://prueba.borja
 SIZELIMIT 12
 TIMELIMIT 15
 DEREF never
 TLS_REQCERT allow

誰でもこれを修正する方法を教えてもらえますか?ホスト名は大丈夫だと思います。

ありがとう!

7
borjamf

試す

TLS_REQCERT never

/etc/ldap/ldap.conf内。これにより、証明書のチェックが防止されます。接続のセキュリティがさらに低下することに注意してください。

/etc/ldap.confはldapsearch(1)に影響を与えるべきではありません

また、コマンドラインで2番目の-Zを削除してみてください。 TLS_REQCERTが許可されていても、それが原因で失敗する可能性があります。

7
ptman

私がこの投稿を見て気づいたことのいくつか。

まず、LDAPSではなく、標準のLDAP上でLDAPサーバーを実行しています。つまり、ldaps://prueba.borja

次に、構成に基づいて、LDAPサーバーがサービスを提供するように構成された証明書がないようです。すべて識別されるのは、サーバーがCAチェーンを解決するクライアントとして機能するとき、および/またはクライアントが要求したときにチェーンを送信するときに、信頼に使用されるCAです。

最後に、クライアントからのエラーは、提供されているTLS証明書に、クライアントが要求していない共通名(CN)またはサブジェクト代替名(SAN)があることを示しています。これには、LDAPサーバーに接続するクライアントが次のようなことを行う必要があります

ldapsearch -x -H prueba.borja -ZZ

これには、証明書にprueba.borjaの共通名(CN)またはprueba.borjaのサブジェクト代替名(SAN)が必要です。

また、リマインダーとして、LDAPサーバーが提供する証明書は、使用している認証局(CA)ルートおよび中間体によって署名されている必要があります。そうでない場合、追加のエラーが発生します。会社が生成した認証局を使用している場合は、管理者が生成できるはずです。パブリックドメイン認証局を使用している場合は、証明書の生成についてベンダーにお問い合わせください。どちらの場合も、一般名および/またはサブジェクトの別名を特定した名前に調整するように伝えてください。

すべてを正しくセットアップすると、適切なTLSハンドシェイクが正常に行われます

2
thxmike