OS X 服务器:使用 TLS、TTLS 或 PEAP 时如何在配置描述文件中配置 RADIUS 服务器信任
本文介绍了在使用配置描述文件时如何正确设置信任。
在 OS X 中,配置描述文件用于配置客户端,以使客户端加入受 802.1x 保护的网络。如果配置描述文件没有针对 EAP 类型正确配置用于建立安全隧道(TLS、TTLS、PEAP)的 RADIUS 服务器信任,你可能会看到下面的一种问题:
不能自动加入
认证失败
无法漫游到新的接入点
在正确配置信任之前,你必须知道 RADIUS 服务器在认证期间提供了哪些证书。如果你已经有这些证书,请跳到第 13 步。
EAPOL 日志会显示 RADIUS 服务器提供的证书。要在 Mac OS X 中启用 EAPOL 日志,请在“终端”中使用以下命令:
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.eapolclient LogFlags -int -1
启用 EAPOL 日志后,手动连接到受 802.1x 保护的网络。系统应该会提示你信任 RADIUS 服务器证书。如果信任这个证书,即可完成认证。
找到 EAPOL 日志。
- In OS X Lion and Mountain Lion, these logs can be found in /var/log/. The log will be called eapolclient.en0.log or eapolclient.en1.log.
- In OS X Mavericks, these logs can be found in /Library/Logs/CrashReporter/com.apple.networking.eapol.XXXXXXXX .
在“控制台”中打开 eapolclient.enX.log,找到名为“TLSServerCertificateChain”的键。它应类似于以下内容:
位于 和 之间的文本块就是证书。拷贝这个文本块,然后粘贴到文本编辑器中。确保将文本编辑器配置为存储纯文本文件。
添加页眉
-----BEGIN CERTIFICATE-----
and a footer of-----END CERTIFICATE-----
. It should look like this:使用扩展名 .pem 存储这个文件。
打开位于“实用工具”文件夹中的“钥匙串访问”App。
Note: It may be helpful to create a new keychain so that you can easily find the certificate you import in the next step.
将你创建的 .pem 文件拖移到新的钥匙串中,或者选取“文件”>“导入项目”并选择你之前创建的 .pem 文件。将这个文件导入到你选择的钥匙串中。
对 TLSCertificateChain 数组中的每个证书重复上述步骤。你可能有多个证书。
检查每个已导入的证书,以便你了解证书是什么。你至少应该有一个根证书和一个 RADIUS 服务器证书。你也可以有一个中间证书。必须将 RADIUS 服务器提供的所有根证书和中间证书添加到配置描述文件的“证书”有效负载中。如果你将 RADIUS 服务器名称包含在“网络”有效负载的“可信的服务器证书的名称”部分中,则上述添加 RADIUS 服务器证书这一操作是可选的。否则,还要在描述文件中添加 RADIUS 服务器证书。
在了解 RADIUS 服务器提供了哪些证书后,你可以从钥匙串中将它们导出为 .cer 文件,然后将它们添加到配置描述文件中。请将各个根证书和中间证书添加到配置描述文件的“证书”有效负载中。如果需要,你还可以添加 RADIUS 服务器证书。
在“网络”有效负载中,找到“信任”部分,然后将你刚添加的证书标记为可信。确保你没有将同位于“证书”有效负载中的任何其他证书标记为可信,否则,认证将失败。确保仅将 RADIUS 服务器实际提供的证书标记为可信。
接下来,将 RADIUS 服务器名称添加到“可信的服务器证书的名称”部分中。必须将所显示的确切名称(包括大小写)用作 RADIUS 服务器证书的通用名称。例如,如果 RADIUS 服务器证书的通用名称是“TEST.example.com”,则必须确保与证书中所用的大小写保持一致。值“test.example.com”是无效的,但“TEST.example.com”是有效的。必须针对每台 RADIUS 服务器分别添加一个新的条目。也可以使用通配符替代主机名。例如,如果使用 *.example.com,则会使 example.com 域上的所有 RADIUS 服务器变为可信状态。
如果你以前启用了 eapol 日志,则可以使用以下命令停用相应的日志记录功能:
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.eapolclient LogFlags -int 0
如果你不确定有没有正确配置信任,可以检查 /var/log/system.log。请在“控制台”中打开 system.log,然后使用“eapolclient”进行筛选以查看与 eapolclient 进程相关的所有信息。下面列举了一个典型的信任错误:
Mar 31 12:27:14 Macintosh.local eapolclient[5961]: [eapttls_plugin.c:968] eapttls_verify_server(): server certificate not trusted status 3 0