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. 将这个新的 hostname 文件置于以下位置:/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/[hostname of the server]

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

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

1. 对于 LDAP 群集中的各个服务器,你需要与之前一样使用 openssl s_client 命令获取证书:

openssl s_client -connect [hostname of the server]: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

发布日期: