[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#4941) incorrect description of TLS_REQCERT setting
Full_Name: Philip Guenther
Version: 2.3.27
OS: linux and solaris
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (64.58.1.252)
The description of the TLS_REQCERT setting in the ldap.conf(5) manpage does not
match the actual operation of the code. In particular:
- clients don't 'request' server certs in TLS. They get one if the cipher
suite
uses them, otherwise they don't
- 'allow' checks the identity of the server vs its cert (per RFC 4513,
section 3.1.3) and will terminate the connection if they don't match
- 'try' is the same as 'demand' and 'hard'
Here's a possible patch to ldap.conf.5 to fix the above. A reference to the RFC
should perhaps be added to the text. I was also tempted to add a sentence to
the lead-in to clarify that the setting has no effect if the negotiated cipher
suite doesn't use certs, as a clarification of the "if any" in the existing
lead-in, but that's minor. Simply having an even slightly correct description
of 'allow' is the important thing.
--- ldap.conf.5 26 Jan 2006 05:57:49 -0000
+++ ldap.conf.5 30 Apr 2007 08:39:53 -0000
@@ -249,22 +249,20 @@
.RS
.TP
.B never
-The client will not request or check any server certificate.
+The client will not check the server certificate at all.
.TP
.B allow
-The server certificate is requested. If no certificate is provided,
-the session proceeds normally. If a bad certificate is provided, it will
-be ignored and the session proceeds normally.
-.TP
-.B try
-The server certificate is requested. If no certificate is provided,
-the session proceeds normally. If a bad certificate is provided,
+The client will only verify that name used to connect to the server
+matches one of the server certificate's subjectAltName or CN values.
+If no match is found, the session is immediately terminated.
+.TP
+.B try | demand | hard
+These keywords are equivalent.
+The client will verify the server certificate is valid and matches the
+name used to connect (as for 'allow').
+If a bad or mismatched certificate is provided,
the session is immediately terminated.
-.TP
-.B demand | hard
-These keywords are equivalent. The server certificate is requested. If no
-certificate is provided, or a bad certificate is provided, the session
-is immediately terminated. This is the default setting.
+This is the default setting.
.RE
.TP
.B TLS_CRLCHECK <level>