配置OpenLDAP使用TLS通讯

来源:互联网 发布:北京火灾 知乎 编辑:程序博客网 时间:2024/05/16 11:02

作者:马路遥

  缺省的情况下,OpenLDAP 服务器和客户端之间使用明文通讯,这在一定条件下是不安全的,OpenLDAP 支持TLS加密。这需要制作证书和修改OpenLDAP的配置文件。

制作证书的步骤如下:
进入/usr/share/ssl/misc 目录,如果此目录下已经存在demoCA 目录,则应该先将demoCA目录删除。
执行下列命令:

./CA -newcert
openssl rsa -in newreq.pem -out newkey.pem

  前一个命令会寻问一系列问题,其中其中”PEM pass phrase”(密码)、”Common Name” 两项是必填的,”Common Name”建议使用你的主机名称。密码则至少为4个字符。其他问题可以留空不填。
  后一个命令会寻问密码,回答必须和第一个命令相同。
  执行完毕两个命令后会生成newkey.pem newreq.pem
  将newkey.pem 文件重命名为slapd-key.pem,并且放置到/etc/openldap/ssl目录下,注意这个目录需要自己行建立,并且放到其他位置亦可。
  使用文本编辑器将newreq.pem 中的private key 部分删除,然后放置到/etc/openldap/ssl 目录下。改名为slapd-cert.pem。

 
进入/usr/share/ssl/misc 目录,如果此目录下已经存在demoCA 目录,则应该先将demoCA目录删除。
1../CA –newca
这个命令会询问一系列问题,其中”PEM pass phrase”(密码)、”Common Name” 两项是必填的,”Common Name”建议使用你的主机名称。密码则至少为4个字符。其他问题可以留空不填。

2.openssl req –new –nodes –keyout newreq.pem –out newreq.pem
这里也会问一系列问题,和上一步的回答方法一样。

3../CA –sign
这里你要回答第一步时键入的密码。

4.创建/etc/openldap/ssl 目录,使用别的目录亦可。

5.mv demoCA/cacert.pem /etc/openldap/ssl

6.mv newcert.pem /etc/openldap/ssl/servercrt.pem

7.mv newreq.pem /etc/openldap/ssl/serverkey.pem

8.chown ldap:ldap /etc/openldap/ssl/serverkey.pem

9.chmod 600 /etc/openldap/ssl/serverkey.pem

10.修改slapd.conf 加入下列三行。


TLSCACertificateFile /etc/openldap/ssl/cacert.pem
TLSCertificateFile /etc/openldap/ssl/servercrt.pem
TLSCertificateKeyFile /etc/openldap/ssl/serverkey.pem

在客户端的/etc/openldap/ldap.conf 中加入
TLS_CACERT /etc/openldap/ssl/cacert.pem ,
注意此文件时从服务器上生成的。

第8步和第9步中修改了serverkey.pem文件的属主和权限,这是必需的。  

在使用tls 的情况下,OpenLDAP 服务使用389和636端口,其中389 端口仍然提供普通的ldap服务,而636端口提供加密的ldap 服务,即ldaps 。
在命令行上链接ldaps 服务器,必须指定-H 参数,如下例:

ldapsearch –x –b ‘dc=linux,dc=org’ –H ldaps://servername:636

其中“:636”的部分可以省略。