Open Directory:启用 Open Directory 和备份服务器的 SSL

可启用安全套接字层 (SSL) 来提供 Open Directory 主服务器、备份服务器和访问 LDAP 目录域的电脑之间的加密通信。SSL 使用数字证书为服务器提供经认证的身份。您可以使用自签名的证书或从证书机构获得的证书。

将 Open Directory 主服务器和备份服务器电脑准备就绪后:

  1. 确保 Open Directory 主服务器、备份服务器电脑均支持 SSL 连接。
  2. 使用自签名证书启用 Open Directory 主服务器上的 SSL 加密,并将常用名称设置为主服务器的主机名称。
  3. 启用所有备份服务器电脑上的 SSL:使用 Server Admin 在备份服务器电脑上创建自签名证书,并将常用名称设为这些电脑的主机名称。

在终端中,执行此命令:

Mac OS X Server 10.5:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert] -ssldomain [name of the certificate]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert]

(默认情况下,Server Admin 将证书储存于“/etc/certificates”之下。还要确保在路径中包含文件名称)

从 Open Directory 主服务器和备份服务器安装证书

为了让客户端电脑可以使用 SSL,需要将目录群集中各个服务的证书拷贝至客户端电脑。要从 Open Directory 主服务器和备份服务器电脑安装证书:

1. 在各客户端电脑上,创建“/etc/openldap/certs”目录。

2. 在客户端电脑上,打开“终端”并执行以下命令以从服务器获取证书:

openssl s_client -connect [hostname of the server]:636

3. 将“---BEGIN CERTIFICATE---”和“---END CERTIFICATE---”之间的行拷贝至名为“hostname”的文件中。

4. 将新的主机名称文件放到此处:/etc/openldap/certs/

5. 您可以使用以下命令测试证书:

openssl s_client -connect [hostname of the server]:636 -CAfile /etc/openldap/certs/hostname

这将显示与以前类似的输出,但最后一行会出现下述变化:验证返回代码:0(ok),而非之前您收到的 18 或 19

6. 如果您只有一个证书(例如,一个启用了 SSL 的 LDAP 服务器),请将以下内容添加到“/etc/openldap/ldap.conf”文件

TLS_CACERT /etc/openldap/certs/[服务器的主机名称]

如果您有多个启用了 SSL 的 LDAP 服务器

您需要按照以下步骤分别指定每个服务器,或者将所有服务器放入同一目录并让 ldap.conf 指向它们:

1. 对于 LDAP 群集中的各个服务器,您需要使用“openssl s_client”命令和以前一样获取证书:

openssl s_client -connect [服务器的主机名称]:636

2. 获得证书后,使用“c_hash”(一种 OpenSSL 实用工具)将证书变成散列格式。对于各个证书,“c_hash”将给您一个名称,以便用于重命名“/etc/openldap/certs”中的证书文件:

/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname

输出应与以下类似:03be8eb2.0 => /etc/openldap/certs/hostname

3. 收到散列名称后,请对现有证书文件进行手动重命名。

示例:

mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0

4. 通过“c_hash”运行所有证书后,请用以下命令编辑“/etc/openldap/ldap.conf”文件:

TLS_CACERTDIR /etc/openldap/certs/

5. 删除“ldap.conf”文件中可能存在的任何较早的“TLS_CACERTDIR”条目。

6. 用“ldapsearch”命令进行验证:

ldapsearch -v -x -H ldaps://[hostname of the server] -b [searchbase]

7. 如果您已经尝试设置 LDAP 服务器,可能需要重新启动目录服务:

sudo killall DirectoryService
发布日期: