証明書のアップグレード後に start_tls オプションで LDAP 認証が機能しない

証明書のアップグレード後に start_tls オプションで LDAP 認証が機能しない

ldap.conf ファイルで ssl start_tls オプションが有効になっているクライアントでは、Ubuntu ldap 認証が機能しません。ssl start_tls をコメント アウトすると認証できます。

LDAP サーバーの証明書をアップグレードしたところ、それ以降、SSL が有効になっている場合、ユーザーは Ubuntu 10.04 クライアント マシンで認証できなくなりました。発生した変更は次のとおりです。

Cert upgraded from 1024 to 2048 bit
now is a wildcart cert and use it to be a self-signed cert
encryption algorithm is now shaw512 (use to be md5)

auth.log にいくつかエラーがあります:

nss-ldap: do_open: do_start_tls が失敗しました:stat=-1

新しい証明書は、新しい証明書を使用して認証する他のクライアント (古い CentOS マシン) がいくつかあるため、機能しています。

クライアントで LDAP と SSL が使用できなくなった理由について、何かご存知の方はいらっしゃいますか?

答え1

署名階層はありますか (つまり、自己署名ではありません)? 「ワイルドカード」と「自己署名」は排他的ではありません。商用ワイルドカード証明書には、1 つ以上の中間 CA とルート CA という階層があります。

sha-512またはmd5はハッシュ証明書の署名に使用されている場合、暗号化アルゴリズムこれらは証明書の整合性を検証するために使用され、接続に使用される暗号はこれとは独立してネゴシエートされます。

最も可能性の高い原因は、sha512 (より正確には「sha512WithRSAEncryption」) が Ubuntu 10 でサポートされていないか、マシンに 1 つ以上の CA 証明書 (中間またはルート) がないため、完全なチェーン検証を完了できないことだと思います。

次のコマンドを実行すると、openssl がサーバーの新しい証明書を処理できるかどうかを確認できます (Ubuntu 10 マシンで)。

openssl x509 -in newservercert.crt -noout -text

ただし、決定的なものではないかもしれません。これも役に立つかもしれません:

ldapsearch -x -Z -v -h your.ldap.server

(OpenSSL の代わりに GnuTLS が使用される可能性はわずかですが、その点についてはお手伝いできません、申し訳ありません!)

/etc/ldap/ldap.conf ファイルに以下を追加することで、チェーンの問題を確認または否定できる可能性があります。

TLS_REQCERT never

それが役に立つ場合は、チェーンの不足している部分を取得して、ローカル ストアに追加する必要があります。その方法はクライアントの構成によって異なりますが、/etc/ldap/ldap.conf ディレクティブで "TLS_CACERT" および/または TLS_CACERTDIR を確認することから始めます。

あまり考えられない原因としては、次のようなものがあります。

  • CRL をチェックできない (ldap.conf をチェックして有効になっているかどうかを確認してください)

そして、他に何も変わっていないと仮定すると、完全を期すためにありそうもない原因も含めました。

  • サーバーのプロトコル バージョンまたは暗号セットがクライアントでサポートされていません
  • サポートされている SASL メカニズムの変更

答え2

この質問が解決したかどうかはわかりません。私も同じ状況に遭遇しました。12.04 は tls を使用して ldap サーバーに接続しますが、10.04 は接続しません。私の解決策は、次の行を追加することです/etc/ldap/ldap.conf:

TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

10.04 クライアントは TLS を使用して LDAP サーバーに接続できます。

関連情報