OS X 服务器:使用 TLS、TTLS 或 PEAP 时如何在配置描述文件中配置 RADIUS 服务器信任

本文介绍了在使用配置描述文件时如何正确设置信任。

在 OS X 中,配置描述文件用于配置客户端,以使客户端加入受 802.1x 保护的网络。如果配置描述文件没有针对 EAP 类型正确配置用于建立安全隧道(TLS、TTLS、PEAP)的 RADIUS 服务器信任,你可能会看到下面的一种问题:

  • 不能自动加入

  • 认证失败

  • 无法漫游到新的接入点

在正确配置信任之前,你必须知道 RADIUS 服务器在认证期间提供了哪些证书。如果你已经有这些证书,请跳到第 13 步。

  1. EAPOL 日志会显示 RADIUS 服务器提供的证书。要在 Mac OS X 中启用 EAPOL 日志,请在“终端”中使用以下命令:

    sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.eapolclient LogFlags -int -1

  2. 启用 EAPOL 日志后,手动连接到受 802.1x 保护的网络。系统应该会提示你信任 RADIUS 服务器证书。如果信任这个证书,即可完成认证。

  3. 找到 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 .

  4. 在“控制台”中打开 eapolclient.enX.log,找到名为“TLSServerCertificateChain”的键。它应类似于以下内容:

  5. 位于 和 之间的文本块就是证书。拷贝这个文本块,然后粘贴到文本编辑器中。确保将文本编辑器配置为存储纯文本文件。

  6. 添加页眉-----BEGIN CERTIFICATE----- and a footer of -----END CERTIFICATE-----. It should look like this:

  7. 使用扩展名 .pem 存储这个文件。

  8. 打开位于“实用工具”文件夹中的“钥匙串访问”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.

  9. 将你创建的 .pem 文件拖移到新的钥匙串中,或者选取“文件”>“导入项目”并选择你之前创建的 .pem 文件。将这个文件导入到你选择的钥匙串中。

  10. 对 TLSCertificateChain 数组中的每个证书重复上述步骤。你可能有多个证书。

  11. 检查每个已导入的证书,以便你了解证书是什么。你至少应该有一个根证书和一个 RADIUS 服务器证书。你也可以有一个中间证书。必须将 RADIUS 服务器提供的所有根证书和中间证书添加到配置描述文件的“证书”有效负载中。如果你将 RADIUS 服务器名称包含在“网络”有效负载的“可信的服务器证书的名称”部分中,则上述添加 RADIUS 服务器证书这一操作是可选的。否则,还要在描述文件中添加 RADIUS 服务器证书。

  12. 在了解 RADIUS 服务器提供了哪些证书后,你可以从钥匙串中将它们导出为 .cer 文件,然后将它们添加到配置描述文件中。请将各个根证书和中间证书添加到配置描述文件的“证书”有效负载中。如果需要,你还可以添加 RADIUS 服务器证书。

  13. 在“网络”有效负载中,找到“信任”部分,然后将你刚添加的证书标记为可信。确保你没有将同位于“证书”有效负载中的任何其他证书标记为可信,否则,认证将失败。确保仅将 RADIUS 服务器实际提供的证书标记为可信。

  14. 接下来,将 RADIUS 服务器名称添加到“可信的服务器证书的名称”部分中。必须将所显示的确切名称(包括大小写)用作 RADIUS 服务器证书的通用名称。例如,如果 RADIUS 服务器证书的通用名称是“TEST.example.com”,则必须确保与证书中所用的大小写保持一致。值“test.example.com”是无效的,但“TEST.example.com”是有效的。必须针对每台 RADIUS 服务器分别添加一个新的条目。也可以使用通配符替代主机名。例如,如果使用 *.example.com,则会使 example.com 域上的所有 RADIUS 服务器变为可信状态。

  15. 如果你以前启用了 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

发布日期: