将 Open Directory 主服务器和备份服务器电脑准备就绪后:
- 确保 Open Directory 主服务器、备份服务器电脑均支持 SSL 连接。
- 使用自签名证书启用 Open Directory 主服务器上的 SSL 加密,并将常用名称设置为主服务器的主机名称。
- 启用所有备份服务器电脑上的 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