我需要了解如何配置 macOS 以使用 EAP-TLS 身份验证而不使用 MDM。
我家网络上只有一台Mac设备,是主人自己用的,不想用第三方软件。
我只需要知道如何导入证书以及如何手动配置无线 EAP-TLS 连接。
我的网络仅支持 Windows,使用 AD CS 创建证书并通过策略配置工作站。由于它是 Mac,因此我将手动执行此例程。
答案1
背景:此类设置需要使用“配置文件”进行配置——基本上,这是一个具有特定格式的设置和 .mobileconfig 扩展名的 XML 文件。通常,您会将设备注册到 MDM 服务中,然后通过互联网将配置文件发送给设备,但您也可以将文件直接放在 Mac(或 iPhone 或 iPad)上,然后手动安装。
我没有办法正确测试这一点,但我认为以下步骤可行。首先,您需要 Apple Configurator 应用程序、要使用的客户端证书(通常是 .p12 或 .pfx 文件,即包含私钥)以及身份验证服务器的证书(.crt 或 .cer 文件,不是包括私钥)。如果你已经在 Mac 的钥匙串中安装了这些证书,那么可能需要移除它们(使用 Keychain Access 实用程序)以避免冲突。我认为不会有问题,但由于我无法测试这一点……为了以防万一,移除它们可能是最安全的做法。
您还需要一个可以编辑 XML 文件的程序,以便在安装之前调整配置文件。通常,面向编程的文本编辑器就足够了(即不会“有帮助地”向文件添加格式垃圾,也不会对奇怪的“.mobileconfig”扩展名感到不满)。Unix 命令行编辑器nano
和vi
都是不错的选择。如果您更喜欢 GUI 编辑器,我建议BB編輯——即使在免费的演示模式下,它也非常适合这样的事情(但请获取网络下载版本,而不是 App Store 版本,后者删除了某些功能以符合 App Store 安全政策)。
首先,运行 Apple Configurator。其大部分界面与管理 iPhone 等有关,本质上充当仅限本地的 MDM。忽略所有这些。从文件菜单中,选择新建配置文件。
您将在左侧边栏中看到一个包含一系列不同类别配置设置的窗口。您只需要其中三个:常规(实际上是配置文件本身的属性)、证书和 Wi-Fi。
在常规部分中,为配置文件输入一个合适的名称(此配置文件将特定于此客户端 Mac,因此它可能应该包括 Mac 的设备名称/序列号/资产标签/其他唯一 ID)。如果您在将要应用的 Mac 上创建它,则默认标识符可能没问题;否则,请选择类似唯一的标识符。输入您的组织(即公司)名称,以及您想要的任何描述和同意消息。
在侧边栏中选择证书,然后单击右侧面板中的配置按钮。这将为您提供一个打开文件对话框。打开客户端和服务器证书。如果您无法同时选择两个证书,请打开一个,然后单击窗格右上角的“+”按钮并添加第二个。如果客户端证书受密码保护,则其下方会有一个字段要求输入密码;最安全的做法是将其留空(稍后安装配置文件时会提示您输入密码)。
在侧边栏中选择 Wi-Fi,然后单击“配置”。输入网络的 SSID(网络名称),进行其他相关更改,然后从“安全类型”弹出菜单中选择合适的企业选项。该选项下将显示“企业设置”部分,其中包含“协议”和“信任”选项卡。
在“协议”选项卡中,选择 TLS EAP 类型,您将在其下看到“身份证书”选项。从弹出菜单中选择客户端证书。
切换到“信任”选项卡,在“受信任的证书”中,选中服务器证书的复选框。我认为您不需要在“受信任的服务器证书名称”下输入任何内容。
注意:侧边栏中的证书旁边应该有一个红色的“1”,因为没有输入客户端证书的密码。这不是问题。如果其他配置部分旁边的数字更大或红色数字更大,则意味着缺少一些重要的东西,您应该回去检查。它会用红色箭头指出缺少的设置。
此时,配置文件应该已经完成了,Apple Configurator 可以做到。选择“文件”菜单 >“保存”,将文件保存到您想要的任何位置(注意:默认情况下会隐藏 .mobileconfig 扩展名,但它确实存在)。它会抱怨有错误,可能无法工作(同样,因为缺少密码),但无论如何都要告诉它保存。
此时配置文件中缺少一个重要内容:有效负载范围。在 macOS 中,配置文件可以应用于单个用户,也可以应用于整个系统。Apple Configurator 旨在配置 iOS 和 tvOS 设备,这些设备没有这种区别,因此无法指定它。macOS 将默认将其应用于用户范围,但根据您的描述,您希望它应用于系统(整个计算机)范围。因此您需要编辑该文件。
在您选择的编辑器中打开 .mobileconfig 文件,并<key>PayloadScope</key><string>System</string>
在顶层添加。它应该看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadScope</key>
<string>System</string>
<key>ConsentText</key>
...
[编辑:] 看起来您还必须告诉它在系统级别应用 Wi-Fi 配置,而不仅仅是在用户登录时。这将涉及查找包含该部分配置的 XML 文件部分。最简单的方法是查找键SSID_STR
(及其字符串值),然后<key>SetupModes</key><array><string>System</string></array>
在其下方添加一个新条目。它应该看起来像这样:
...
<key>SSID_STR</key>
<string>Some Wi-Fi Name Here</string>
<key>SetupModes</key>
<array>
<string>System</string>
</array>
</dict>
...
(注意:当我测试这个时,该SSID_STR
项目是 Wi-Fi 设置中的最后一项dict
,因此它下面有一个关闭dict
标签。您的顺序可能不同,在这种情况下下面会有更多key
条目。这不是问题,只是顺序不同而已。)
现在配置文件已准备就绪。打开系统设置(在 Apple 菜单下)。默认情况下,配置文件部分可能不显示,因此您需要从“查看”菜单中选择它,或使用“搜索”字段来查找它。无论哪种方式,请选择配置文件设置。
在已安装配置文件列表(可能为空)下,单击“+”按钮,然后选择您刚刚创建的配置文件。我将向您展示配置文件所含内容的摘要,并给您几次机会退出安装。根据需要多次单击继续/安装/等。在某个时候,它应该会提示您输入客户端证书的缺失密码以及本地管理员帐户密码;输入这些并继续。
当它提示您时,配置文件应该列在已安装配置文件列表中的“设备”下(如果它在“用户”下,则范围更改不起作用;使用“-”按钮将其删除,检查您的编辑,然后重试)。如果它没有立即连接到 Wi-Fi 网络,您可能需要重新启动 Mac 以使新设置完全生效。
顺便说一句,我认为实际上有一种方法可以让 Mac 从 Active Directory 证书服务中提取自己的客户端证书,并自动将其应用于 Wi-Fi 配置。但我不确定如何设置,对于单台 Mac(您已经为其创建了客户端证书),可能不值得担心。