If you are hosting two or more LDAP servers, you will probably not want to use self-signed certificates, since each client will have to be configured to work with each certificate. While this is possible, it is not nearly as simple as creating your own certificate authority, and signing your servers' certificates with that.
The steps here are presented as they are with very little attempt at explaining what is going on—further explanation can be found in openssl(1) and its friends.
To create a certificate authority, we simply need a self-signed certificate and key. The steps for this again are
%
openssl genrsa -out root.key 1024
%
openssl req -new -key root.key -out root.csr
%
openssl x509 -req -days 1024 -in root.csr -signkey root.key -out root.crt
These will be your root CA key and certificate. You will probably want to encrypt the key and store it in a cool, dry place; anyone with access to it can masquerade as one of your LDAP servers.
Next, using the first two steps above create a key
ldap-server-one.key
and certificate signing
request ldap-server-one.csr
. Once you sign
the signing request with root.key
, you will
be able to use ldap-server-one.*
on your
LDAP servers.
Do not forget to use the fully qualified domain name for the “common name” attribute when generating the certificate signing request; otherwise clients will reject a connection with you, and it can be very tricky to diagnose.
To sign the key, use -CA
and
-CAkey
instead of
-signkey
:
%
openssl x509 -req -days 1024 \ -in ldap-server-one.csr -CA root.crt -CAkey root.key \ -out ldap-server-one.crt
The resulting file will be the certificate that you can use on your LDAP servers.
Finally, for clients to trust all your servers, distribute
root.crt
(the
certificate, not the key!) to each client,
and specify it in the TLSCACertificateFile
directive in ldap.conf
.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.