Решил OpenLdap через stunnel настроить
stunnel.conf
cert = /ssl/server.crt
chroot = /var/tmp/stunnel
pid = /stunnel.pid
setuid = stunnel
setgid = stunnel
CAfile = /ssl/ca.crt
debug = 7
[ldap]
accept = 636
connect = 389
Создал сертификаты CA и сервера. Проверил
openssl verify -CAfile /ssl/ca.crt /ssl/server.crt
/ssl/server.crt: OK
Проверяю соединение
openssl s_client -connect localhost:636
CONNECTED(00000005)
---
Certificate chain
0 s:/C=ru/ST=ldap/L=Novo/O=test/OU=oasu/CN=10.10.10.39
i:/C=ru/ST=ca/L=test/O=zao/OU=oasu/CN=10.10.10.39
---
Server certificate
-----BEGIN CERTIFICATE-----
LjEwLjEwLjM5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfVzfuuRhuxmi0
4rdVeoc+ev3savNBEUoKCxIsNxbLnQKwA0VhrAGQXlni1Q/P6z8EWnqPkMWzOG2p
6mrv2N9IByfEaeuXy0OipWXKOjva+t1ZKF5lb/gk41g8rnnyO0M7Xa2QMT7Nj/zM
-----END CERTIFICATE-----
subject=/C=ru/ST=ldap/L=Novo/O=test/OU=oasu/CN=10.10.10.39
issuer=/C=ru/ST=ca/L=test/O=zao/OU=oasu/CN=10.10.10.39
---
No client certificate CA names sent
---
SSL handshake has read 720 bytes and written 346 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: 16815AC54CC6670382D57648AE7972C4D006DA84A591DABBA0ABD96CEAC8F241
Session-ID-ctx:
Master-Key: A66AEA386E2A24ABDF52FFEB6A2D62C8ED1464963603D271A2E733A32738E01A6C27F4F69D88142DD8FF6E6ACEF26F38
Key-Arg : None
Start Time: 1089906471
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
Еще пишет, что не может найти CA
verify error:num=20:unable to get local issuer certificate
То же самое, когда пытался настроить в Openldap поддержку TLS.
Многих может смущать строка
CN=10.10.10.39
Но внутри сети нет DNS сервера (есть только WINS). Поэтому так. (Если кто знает как по другому, то жду варианты).
P.S. Стоит сервер (FreeBSD 4.9) почтовый с поддержкой IMAPS, SMTPS, настроенные также c CN=10.10.10.10. Работает на ура.