客户端证书或证书加域身份验证
Citrix Endpoint Management 的默认配置是用户名和密码验证。 要为注册和访问 Citrix Endpoint Management 环境添加另一层安全性,请考虑使用基于证书的身份验证。 在 Citrix Endpoint Management 环境中,此配置是安全性和用户体验的最佳组合。 证书加域身份验证具有最佳的 SSO 可能性,再加上 NetScaler Gateway 的双因素身份验证提供的安全性。
为了获得最佳可用性,您可以将证书加域身份验证与 Citrix PIN 和 Active Directory 密码缓存相结合。 因此,用户不必重复输入其 LDAP 用户名和密码。 用户输入用户名和密码进行注册、密码过期和帐户锁定。
重要的:
用户在 Citrix Endpoint Management 中注册设备后,Citrix Endpoint Management 不支持将身份验证模式从域身份验证更改为某些其他身份验证模式。
如果您不允许 LDAP 并使用智能卡或类似方法,则配置证书允许您向 Citrix Endpoint Management 代表智能卡。 然后,用户使用 Citrix Endpoint Management 为他们生成的唯一 PIN 进行注册。 用户获得访问权限后,Citrix Endpoint Management 会创建并部署用于对 Citrix Endpoint Management 环境进行身份验证的证书。
当使用 NetScaler Gateway 仅证书身份验证或证书加域身份验证时,可以使用 NetScaler for XenMobile 向导执行 Citrix Endpoint Management 所需的配置。 只能运行一次 NetScaler for XenMobile 向导。
在高度安全的环境中,在组织外部的公共或不安全的网络中使用 LDAP 凭据被视为组织的主要安全威胁。 对于高度安全的环境,使用客户端证书和安全令牌的双因素身份验证是一种选择。 有关更多信息,请参阅 配置 Citrix Endpoint Management 以进行证书和安全令牌身份验证。
客户端证书身份验证适用于已注册 MAM 和 MDM+MAM 的设备。 要对这些设备使用客户端证书身份验证,您必须配置 Microsoft 服务器、Citrix Endpoint Management,然后配置 NetScaler Gateway。 按照本文中所述的常规步骤进行操作。
在 Microsoft 服务器上:
- 将证书管理单元添加到 Microsoft 管理控制台。
- 将模板添加到证书颁发机构 (CA)。
- 从 CA 服务器创建 PFX 证书。
在 Citrix Endpoint Management 上:
- 将证书上传到 Citrix Endpoint Management。
- 创建基于证书的身份验证的 PKI 实体。
- 配置凭证提供商。
- 配置 NetScaler Gateway 以提供用户证书进行身份验证。
有关 NetScaler Gateway 配置的信息,请参阅 Citrix ADC 文档中的以下文章:
先决条件
-
创建 Microsoft 证书服务实体模板时,请排除特殊字符以避免已注册设备可能出现的身份验证问题。 例如,不要在模板名称中使用这些字符:
: ! $()#%+*〜? | {} []
- 要为 Exchange ActiveSync 配置基于证书的身份验证,请参阅 Exchange Server 上的 Microsoft 文档。 将 Exchange ActiveSync 的证书颁发机构 (CA) 服务器站点配置为要求客户端证书。
- 如果您使用私人服务器证书来保护到 Exchange Server 的 ActiveSync 流量,请确保移动设备具有所有根/中间证书。 否则,在 Citrix Secure Mail 中设置邮箱时基于证书的身份验证将会失败。 在 Exchange IIS 控制台中,您必须:
- 添加供 Citrix Endpoint Management 与 Exchange 使用的网站并绑定 Web 服务器证书。
- 使用端口 9443。
- 对于该网站,您必须添加两个应用程序,一个用于“Microsoft-Server-ActiveSync”,一个用于“EWS”。 对于这两个应用程序,在 SSL 设置下,选择 需要 SSL。
将证书管理单元添加到 Microsoft 管理控制台
-
打开控制台,然后单击 添加/删除管理单元。
-
添加以下管理单元:
- 证书模板
- 证书(本地计算机)
- 证书 - 当前用户
- 证书颁发机构(本地)
-
展开 证书模板。
-
选择 用户 模板和 重复模板。
-
提供模板显示名称。
重要的:
不建议选择 在 Active Directory 中发布证书 选项。 如果选择此选项,它会为 Active Directory 中的所有用户创建客户端证书,这可能会使您的 Active Directory 数据库变得混乱。
-
选择 Windows 2003 Server 作为模板类型。 在 Windows 2012 R2 服务器中,在 兼容性下,选择 证书颁发机构,并将收件人设置为 Windows 2003。
-
在 安全下,单击 添加 ,然后选择 Citrix Endpoint Management 用于生成证书的 AD 用户帐户。
重要的:
此处仅添加服务帐户用户。 仅向此 AD 用户帐户添加 注册 权限。
如本文后面所述,您可以使用服务帐户创建用户 .pfx 证书。 有关信息,请参阅 [从 CA 服务器创建 PFX 证书](#creating-a-pfx-certificate-from-the-ca-server)。

-
在 Cryptography下,确保您提供了密钥大小。 稍后在 Citrix Endpoint Management 配置期间输入密钥大小。
-
在 主题名称下,选择请求</strong>中的 **供应。 应用更改然后保存。</p>
</li> </ol>
将模板添加到证书颁发机构
-
转到 证书颁发机构 并选择 证书模板。
-
在右侧窗格中单击鼠标右键,然后选择 新建 > 要颁发的证书模板。
-
选择您在上一步中创建的模板,然后单击 确定 将其添加到 证书颁发机构。
从 CA 服务器创建 PFX 证书
-
使用您登录的服务帐户创建用户 .pfx 证书。 .pfx 上传到 Citrix Endpoint Management,然后为注册其设备的用户请求用户证书。
-
在 当前用户下,展开 证书。
-
在右窗格中单击鼠标右键,然后单击“ 请求新证书”。
-
出现 证书注册 屏幕。 单击 下一步。
-
选择 Active Directory 注册策略 然后单击 下一步。
-
选择 用户 模板,然后单击 注册。
-
导出您在上一步中创建的 .pfx 文件。
-
点击 是,导出私钥。
-
选择 如果可能的话,在认证路径中包含所有证书 ,然后选择 导出所有扩展属性 复选框。
-
设置将此证书上传到 Citrix Endpoint Management 时使用的密码。
-
将证书保存到您的硬盘上。
将证书上传到 Citrix Endpoint Management
-
在 Citrix Endpoint Management 控制台中,单击右上角的齿轮图标。 出现“ 设置 屏幕。
-
单击 证书 然后单击 导入。
-
输入以下参数:
- 导入: 密钥库
- 密钥库类型: PKCS #12
- 用作: 服务器
- 密钥库文件: 单击浏览以选择您创建的 .pfx 证书。
- 密码: 输入您为此证书创建的密码。
-
单击 导入。
-
验证证书是否安装正确。 正确安装的证书显示为用户证书。
为基于证书的身份验证创建 PKI 实体
-
在 设置中,转到 更多 > 证书管理 > PKI 实体。
-
单击 添加 然后单击 Microsoft 证书服务实体。 出现 Microsoft 证书服务实体:常规信息 屏幕。
-
输入以下参数:
- 名称: 输入任意名称。
-
Web 注册服务根 URL:
https://RootCA-URL/certsrv/
(请确保在 URL 路径中添加最后一个斜杠 /。) - certnew.cer 页面名称: certnew.cer(默认值)
- certfnsh.asp: certfnsh.asp(默认值)
- 身份验证类型: 客户端证书
- SSL 客户端证书: 选择用于颁发 Citrix Endpoint Management 客户端证书的用户证书。 若不存在证书,请按照上一节的步骤上传证书。
-
在 模板下,添加您在配置 Microsoft 证书时创建的模板。 不要添加空格。
-
跳过 HTTP 参数,然后单击 CA 证书。
-
选择与您的环境相对应的根 CA 名称。 此根 CA 是从 Citrix Endpoint Management 客户端证书导入的链的一部分。
-
点击 保存。
配置凭证提供程序
-
在 设置中,转到 更多 > 证书管理 > 凭证提供商。
-
点击 添加。
-
在 General下,输入以下参数:
- 名称: 输入任意名称。
- 描述: 输入任何描述。
- 颁发实体: 选择之前创建的 PKI 实体。
- 发行方式: SIGN
- 模板: 选择在 PKI 实体下添加的模板。
-
单击 证书签名请求 ,然后输入以下参数:
- 密钥算法: RSA
- 密钥大小: 2048
- 签名算法: SHA256withRSA
-
主题名称:
cn=$user.username
对于 主题备用名称,单击 添加 然后输入以下参数:
- 类型: 用户主体名称
-
值:
$user.userprincipalname
-
单击 分布 并输入以下参数:
- 颁发 CA 证书: 选择签署 Citrix Endpoint Management 客户端证书的颁发 CA。
- 选择分发模式: 选择 优先集中式:服务器端密钥生成。
-
对于接下来的两个部分, 撤销 Citrix Endpoint Management 和 撤销 PKI,根据需要设置参数。 在此示例中,两个选项都被跳过。
-
点击 续订。
-
启用 当证书过期时更新。
-
将所有其他设置保留为默认设置或根据需要进行更改。
-
点击 保存。
配置 Citrix Secure Mail 以使用基于证书的身份验证
将 Citrix Secure Mail 添加到 Citrix Endpoint Management 时,请确保配置 应用程序设置下的 Exchange 设置。
在 Citrix Endpoint Management 中配置 NetScaler Gateway 证书传送
-
在 Citrix Endpoint Management 控制台中,单击右上角的齿轮图标。 出现“ 设置 屏幕。
-
在 Server下,单击 NetScaler Gateway。
-
如果尚未添加 NetScaler Gateway,请单击 添加 并指定设置:
- 名称: 设备的描述性名称。
- 别名: 设备的可选别名。
-
外部 URL:
https://YourCitrixGatewayURL
- 登录类型: 选择 证书和域
- 需要密码: 关闭
- 设置为默认值: 开启
-
对于 身份验证 和 交付用户证书进行身份验证,选择 和。
-
对于 凭证提供者,选择一个提供者,然后单击 保存。
-
要使用用户证书中的 sAMAccount 属性作为用户主体名称 (UPN) 的替代,请在 Citrix Endpoint Management 中配置 LDAP 连接器,如下所示:转到 设置 > LDAP,选择目录并单击 编辑,然后通过</strong>选择 用户搜索中的sAMAccountName**。</p>
</li> </ol>
启用 Citrix PIN 和用户密码缓存
要启用 Citrix PIN 和用户密码缓存,请转到 设置 > 客户端属性 并选中以下复选框: 启用 Citrix PIN 身份验证 和 启用用户密码缓存。 有关更多信息,请参阅 客户端属性。
客户端证书配置疑难解答
上述配置加上NetScaler Gateway配置成功后,用户工作流程如下:
-
用户注册他们的移动设备。
-
Citrix Endpoint Management 提示用户创建 Citrix PIN。
-
然后用户会被重定向到应用商店。
-
当用户启动 Citrix Secure Mail 时,Citrix Endpoint Management 不会提示他们输入用于邮箱配置的用户凭据。 相反,Citrix Secure Mail 从 Citrix Secure Hub 请求客户端证书并将其提交给 Microsoft Exchange Server 进行身份验证。 如果 Citrix Endpoint Management 在用户启动 Citrix Secure Mail 时提示输入凭据,请检查您的配置。
如果用户可以下载并安装 Citrix Secure Mail,但在邮箱配置期间 Citrix Secure Mail 无法完成配置:
-
如果 Microsoft Exchange Server ActiveSync 使用私有 SSL 服务器证书来保护流量,请验证移动设备上是否安装了根/中间证书。
-
验证为 ActiveSync 选择的身份验证类型是否设置为 需要客户端证书。
-
在 Microsoft Exchange Server 上,检查 Microsoft-Server-ActiveSync 站点以验证是否启用了客户端证书映射身份验证。 默认情况下,客户端证书映射身份验证是禁用的。 该选项位于 配置编辑器 > 安全 > 身份验证下。
选择 True后,请务必单击 Apply 以使更改生效。
-
检查 Citrix Endpoint Management 控制台中的 NetScaler Gateway 设置:确保 为身份验证提供用户证书 处于 开启 并且 凭据提供程序 选择了正确的配置文件。
确定客户端证书是否已传送至移动设备
-
在 Citrix Endpoint Management 控制台中,转到 管理 > 设备 并选择设备。
-
单击 编辑 或 显示更多。
-
转到 交付组 部分,并搜索以下条目:
NetScaler 网关凭据:请求的凭据,CertId=
验证是否启用了客户端证书协商
-
运行此
netsh
命令以显示绑定在 IIS 网站上的 SSL 证书配置:netsh http show sslcert
-
如果 Negotiate Client Certification 的值为 Disabled,请运行以下命令来启用它:
netsh http delete sslcert ipport=0.0.0.0:443
netsh http add sslcert ipport=0.0.0.0:443 certhash=cert_hash appid={app_id} certstorename=store_name verifyclientcertrevocation=Enable VerifyRevocationWithCachedClientCertOnly=Disable UsageCheck=Enable clientcertnegotiation=Enable
例如:
netsh http add sslcert ipport=0.0.0.0:443 certhash=23498dfsdfhaf98rhkjqf9823rkjhdasf98asfk appid={123asd456jd-a12b-3c45-d678-123456lkjhgf} certstorename=ExampleCertStoreName verifyclientcertrevocation=Enable VerifyRevocationWithCachedClientCertOnly=Disable UsageCheck=Enable clientcertnegotiation=Enable
如果无法通过 Citrix Endpoint Management 将根证书/中间证书传送到 Windows Phone 8.1 设备:
- 通过电子邮件将根/中间证书(.cer)文件发送到 Windows Phone 8.1 设备并直接安装。
如果 Citrix Secure Mail 无法在 Windows Phone 8.1 上成功安装,请验证以下内容:
- 应用程序注册令牌 (.AETX 文件) 使用企业中心设备策略通过 Citrix Endpoint Management 传送。
- 应用程序注册令牌是使用证书提供商提供的用于包装 Citrix Secure Mail 和签署 Citrix Secure Hub 应用程序的相同企业证书创建的。
- 使用相同的发布者 ID 来签名和包装 Citrix Secure Hub、Citrix Secure Mail 和应用程序注册令牌。