在 Intune 中配置和使用 PKCS 证书

Intune 支持使用私钥和公钥对 (PKCS) 证书。 本文综述了在 Intune 中使用 PKCS 证书的要求,包括导出 PKCS 证书,然后将其添加到 Intune 设备配置文件。

Microsoft Intune 包括内置的设置来使用 PKCS 证书对组织资源进行访问和身份验证。 证书用于进行身份验证并保证用户安全访问公司资源(例如 VPN 或 WiFi 网络)。 使用 Intune 中的设备配置配置文件,将这些设置部署到设备。

有关使用导入的 PKCS 证书的信息,请参阅导入的 PFX 证书

提示

Windows 企业版多会话远程桌面支持 PKCS 证书配置文件。

要求

要在 Intune 中使用 PKCS 证书,必须具有以下基础结构:

  • Active Directory 域
    此部分中列出的所有服务器都必须加入 Active Directory 域。

    有关安装和配置 Active Directory 域服务 (AD DS) 的详细信息,请参阅 AD DS 设计和规划

  • 证书颁发机构
    企业证书颁发机构 (CA)。

    有关安装和配置 Active Directory 证书服务 (AD CS) 的信息,请参阅 Active Directory 证书服务分步指南

    警告

    Intune 要求在企业证书颁发机构 (CA) 而非独立 CA 中运行 AD CS。

  • 客户端
    连接到企业 CA。

  • 根证书
    从企业 CA 导出的根证书的副本。

  • Microsoft Intune 证书连接器

    有关证书连接器的详细信息,请参阅:

从企业 CA 中导出根证书

要使用 VPN、WiFi 或其他资源对设备进行身份验证,设备需要根证书或中间 CA 证书。 以下步骤介绍如何从企业 CA 中获取所需的证书。

使用命令行

  1. 使用管理员帐户登录到根证书颁发机构服务器。

  2. 转到“开始”>“运行”,然后输入“Cmd”以打开命令提示符。

  3. 指定“certutil -ca.cert ca_name.cer”,以将根证书导出为“ca_name.cer”文件。

在 CA 上配置证书模板

  1. 使用具有管理权限的帐户登录到企业 CA。

  2. 打开“证书颁发机构”控制台,右键单击“证书模板”,然后选择“管理”。

  3. 找到“用户”证书模板,右键单击该模板,然后选择“复制模板”以打开“新建模板的属性面板”

    注意

    对于 S/MIME 电子邮件签名和加密方案,许多管理员使用单独的证书进行签名和加密。 如果使用 Microsoft Active Directory 证书服务,则针对 S/MIME 电子邮件签名证书可使用“仅 Exchange 签名”模板,针对 S/MIME 加密证书可使用“Exchange 用户”模板。 如果使用第三方证书颁发机构,建议查看其指南,设置签名和加密模板。

  4. 在“兼容性”选项卡上:

    • 将“证书颁发机构”设置为“Windows Server 2008 R2
    • 将“证书接收人”设置为“Windows 7 / Server 2008 R2
  5. 在"常规"选项卡:

    • 模板显示名称 设置为对你有意义的内容。
    • 取消选中“在 Active Directory 中发布证书”

    警告

    默认情况下,“模板名称”与“模板显示名称”相同,不包含空格。 请记下模板名称,供以后使用。

  6. 在“请求处理”中,选择“允许导出私钥”。

    注意

    与 SCEP 不同,使用 PKCS 时,系统在安装了连接器的服务器上而不是在设备上生成证书私钥。 证书模板必须允许导出私钥,以便证书连接器能够导出 PFX 证书并将其发送到设备。

    如果证书安装在设备本身上,私钥将被标记为不可导出。

  7. 在“加密”处,确认将“最小密钥大小”设置为 2048。

    Windows 和 Android 设备支持将 4096 位密钥大小与 PKCS 证书配置文件配合使用。 若要使用此密钥大小,请指定 4096 作为 最小密钥大小

    注意

    对于 Windows 设备,仅 软件密钥存储提供程序 (KSP) 支持 4096 位密钥存储。 以下项不支持存储此大小的密钥:

    • 硬件 TPM (受信任的平台模块) 。 解决方法是使用软件 KSP 进行密钥存储。
    • Windows Hello 企业版。 目前没有针对Windows Hello 企业版的解决方法。
  8. 在“使用者名称”处,选择“在请求中提供”

  9. 在“扩展”处,确认在“应用程序策略”下显示有加密文件系统、安全电子邮件和客户端身份验证。

    重要

    对于 iOS/iPadOS 证书模板,转到“扩展”选项卡,更新“密钥用法”,并确保未选择“数字签名为原件的证明”。

  10. 安全性中

    1. (必需) :为安装用于 Microsoft Intune 的证书连接器的服务器添加计算机帐户。 允许该帐户具有读取注册权限。
    2. (可选但建议) :通过选择“域用户组”并选择“删除”,从此模板上允许权限的组或用户名列表中删除域用户组。 查看 组或用户名 中的其他条目,了解环境的权限和适用性。
  11. 选择“应用”>“确认”以保存证书模板。 关闭“证书模板控制台”

  12. 在“证书颁发机构”控制台中,右键单击“证书模板”>“新建”>“要颁发的证书模板”。 选择在先前步骤中创建的模板。 选择“确定”。

  13. 为了让服务器管理已注册设备和用户的证书,请使用以下步骤:

    1. 右键单击“证书颁发机构”,选择“属性”。
    2. 在“安全”选项卡上,添加在其上运行连接器的服务器的计算机帐户。
    3. 向计算机帐户授予“发布和管理证书”以及“请求证书”允许权限。
  14. 注销企业 CA。

下载、安装并配置 Microsoft Intune 证书连接器

有关指导,请参阅安装并配置 Microsoft Intune 证书连接器

创建受信任的证书配置文件

  1. 登录到Microsoft Intune管理中心

  2. 选择并转到 “设备>配置>创建”。

  3. 输入以下属性:

    • 平台:选择将接收此配置文件的设备的平台。
      • Android 设备管理员
      • Android Enterprise:
        • 完全托管
        • Dedicated
        • 公司拥有的工作配置文件
        • 个人拥有的工作配置文件
      • iOS/iPadOS
      • macOS
      • Windows 10/11
    • 配置文件:选择“受信任的证书”。 或者,选择“模板”>“受信任的证书”
  4. 选择“创建”。

  5. 在“基本信息”中,输入以下属性:

    • 名称:输入配置文件的描述性名称。 为配置文件命名,以便稍后可以轻松地识别它们。 例如,配置文件名称最好是“整个公司的受信任证书配置文件”。
    • 说明:输入配置文件的说明。 此设置是可选的,但建议进行。
  6. 选择 下一步

  7. 配置设置中,为之前导出的根 CA 证书指定 .cer 文件。

    注意

    能否为证书选择“目标存储区”取决于步骤 3 中所选的平台。

    创建配置文件并上传受信任的证书

  8. 选择 下一步

  9. 分配中,选择要分配配置文件的用户或设备组。 有关更详细的信息,请参阅在 Microsoft Intune 中创建筛选器,并通过选择“编辑筛选器”来应用筛选器。

    计划将此证书配置文件部署到接收 PKCS 证书配置文件以及接收配置文件(如使用证书的 Wi-Fi 配置文件)的相同组。 有关分配配置文件的详细信息,请参阅分配用户和设备配置文件

    选择 下一步

  10. 仅适用于 Windows 10/11)在“适用性规则”中,指定适用性规则以优化此配置文件的分配。 可以根据操作系统版本或设备版本来选择是否分配配置文件。

    有关详细信息,请参阅“在 Microsoft Intune 中创建设备配置文件”中的适用性规则

  11. 在“查看并创建”中查看设置。 选择“创建”时,将保存所做的更改并分配配置文件。 该策略也会显示在配置文件列表中。

创建 PKCS 证书配置文件

重要

Microsoft Intune于 2024 年 8 月 30 日终止对有权访问 Google 移动服务的设备上的 Android 设备管理员管理的支持, (GMS) 。 在此日期之后,设备注册、技术支持、bug 修复和安全修复将不可用。 如果当前使用设备管理员管理,建议在支持结束之前切换到 Intune 中的另一个 Android 管理选项。 有关详细信息,请阅读 在 GMS 设备上终止对 Android 设备管理员的支持

  1. 登录到Microsoft Intune管理中心

  2. 选择并转到 “设备>配置>创建”。

  3. 输入以下属性:

    • 平台:选择设备平台。 选项包括:
      • Android 设备管理员
      • Android Enterprise:
        • 完全托管
        • Dedicated
        • 公司拥有的工作配置文件
        • 个人拥有的工作配置文件
      • iOS/iPadOS
      • macOS
      • Windows 10/11
    • 配置文件:选择“PKCS 证书”。 或者,选择“模板”>“PKCS 证书”。

    注意

    在应用了 Android Enterprise 配置文件的设备上,使用 PKCS 证书配置文件安装的证书在设备上不可见。 若要确认证书部署成功,请在 Intune 管理中心检查配置文件的状态。

  4. 选择“创建”。

  5. 在“基本信息”中,输入以下属性:

    • 名称:输入配置文件的描述性名称。 为配置文件命名,以便稍后可以轻松地识别它们。 例如,配置文件名称最好是“整个公司的 PKCS 配置文件”。
    • 说明:输入配置文件的说明。 此设置是可选的,但建议进行。
  6. 选择 下一步

  7. 在“配置设置”中,根据所选择的平台,可配置的设置有所不同。 选择平台,进行详细设置:

    • Android 设备管理员
    • Android Enterprise
    • iOS/iPadOS
    • Windows 10/11
    Setting 平台 详细信息
    续订阈值 (%)
    • 全部
    建议设为 20%
    证书有效期
    • 全部
    如果没有更改证书模板,则此选项可能设置为一年。

    使用 5 天或最长 24 个月的有效期。 当有效期少于五天时,证书很可能进入即将过期或已过期状态,这可能导致设备上的 MDM 代理在安装证书之前拒绝证书。
    密钥存储提供程序 (KSP)
    • Windows 10/11
    对于 Windows,请选择在设备上存储密钥的位置。
    证书颁发机构
    • 全部
    显示企业 CA 的内部完全限定的域名 (FQDN)。
    证书颁发机构名称
    • 所有
    列出企业 CA 的名称,例如“Contoso 证书颁发机构”。
    证书模板名称
    • 全部
    列出证书模板的名称。
    证书类型
    • Android Enterprise(公司拥有和个人拥有的工作配置文件
    • iOS
    • macOS
    • Windows 10/11
    选择一个类型:
    • 用户证书可在证书使用者和使用者可选名称 (SAN) 中同时包含用户和设备属性。
    • 设备”证书只能在证书主题和 SAN 中包含设备属性。 设备适用于无用户设备(例如网亭或其他共享设备)的情况。

      此选择影响使用者名称格式。
    使用者名称格式
    • 所有
    有关如何配置使用者名称格式的详细信息,请参阅本文后面的使用者名称格式

    对于以下平台,使用者名称格式由证书类型决定:
    • Android Enterprise(工作配置文件
    • iOS
    • macOS
    • Windows 10/11

    使用者替代名称
    • 全部
    对于“属性”,除非需要,请选择“用户主体名称(UPN)”,否则请配置相应的“值”,然后选择“添加”

    对于这两种证书类型的 SAN,可以使用变量或静态文本。 变量的使用不是必需的。

    有关详细信息,请参阅本文后面的使用者名称格式
    扩展密钥用法
    • Android 设备管理员
    • Android Enterprise(设备所有者公司拥有和个人拥有的工作配置文件
    • Windows 10/11
    证书通常需要“客户端身份验证”,以便用户或设备能够对服务器进行身份验证。
    允许所有应用访问私钥
    • macOS
    设置为启用为关联的 mac 设备配置的应用授予对 PKCS 证书私钥的访问权限。

    有关此设置的详细信息,请参阅 Apple 开发人员文档中配置文件参考中的 AllowAllAppsAccess 证书有效负载部分
    根证书
    • Android 设备管理员
    • Android Enterprise(设备所有者,公司拥有和个人拥有的工作配置文件
    选择以前分配的根 CA 证书配置文件。
  8. 此步骤仅适用于完全托管、专用和 Corporate-Owned 工作配置文件Android Enterprise 设备配置文件。

    “应用”中,配置 “证书访问权限 ”以管理向应用程序授予证书访问权限的方式。 从以下项中进行选择:

    • 要求用户批准 (默认) 的应用 – 用户必须批准所有应用程序使用证书。
    • 以静默方式为特定应用授予 (要求用户批准其他应用) – 使用此选项时,选择“ 添加应用”,然后选择一个或多个无需用户交互即可以无提示方式使用该证书的应用。
  9. 选择 下一步

  10. 在“分配”中,选择将接收配置文件的用户或组。 计划将此证书配置文件部署到接收受信任的证书配置文件,以及接收配置文件(如使用该证书的 Wi-Fi 配置文件)的相同组。 有关分配配置文件的详细信息,请参阅分配用户和设备配置文件

    选择 下一步

  11. “查看并创建”中查看设置。 选择“创建”时,将保存所做的更改并分配配置文件。 该策略也会显示在配置文件列表中。

使用者名称格式

为以下平台创建 PKCS 证书配置文件时,使用者名称格式的选项取决于所选的证书类型,即“用户”或“设备”

平台:

  • Android Enterprise(公司拥有和个人拥有的工作配置文件
  • iOS
  • macOS
  • Windows 10/11

注意

当生成的证书签名请求中的使用者名称 (CSR) 包含以下字符之一作为转义字符 (反斜杠 \) 进行时,使用 PKCS 获取证书时,存在 与 SCEP 相同的问题

  • +
  • ;
  • ,
  • =

注意

从 Android 12 开始,Android 不再支持将以下硬件标识符用于个人拥有的工作配置文件设备:

  • 序列号
  • IMEI
  • MEID

对于依赖于使用者名称或 SAN 中的这些变量的个人拥有工作配置文件设备的 Intune 证书配置文件,在 Intune 中注册设备时,将无法在运行 Android 12 或更高版本的设备上预配证书。 在升级到 Android 12 之前注册的设备仍然可以接收证书,只要 Intune 之前获得了设备硬件标识符。

有关这一点和 Android 12 引入的其他更改的详细信息,请参阅对 Microsoft Endpoint Manager 的 Android 零时差支持博客文章。

  • “用户”证书类型
    使用者名称格式的格式选项包括两个变量:公用名 (CN)电子邮件 (E)。 电子邮件 (E) 通常与 {{EmailAddress}} 变量一起设置。 例如:E={{EmailAddress}}

    可将“公用名(CN)”设置为以下任何变量:

    • CN={{UserName}}:用户的用户名,例如 Jane Doe

    • CN={{UserPrincipalName}}:用户的用户主体名称,例如 janedoe@contoso.com。

    • CN={{AAD_Device_ID}}:在 Microsoft Entra ID 中注册设备时分配的 ID。 此 ID 通常用于通过 Microsoft Entra ID 进行身份验证。

    • CN={{DeviceId}}:在 Intune 中注册设备时分配的 ID。

    • CN={{SERIALNUMBER}}:制造商通常用于标识设备的唯一序列号 (SN)。

    • CN={{IMEINumber}}:用于标识移动电话的国际移动设备标识 (IMEI)。

    • CN={{OnPrem_Distinguished_Name}}:用逗号分隔的一系列相对可分辨名称,如 CN=Jane Doe、OU=UserAccounts、DC=corp、DC=contoso、DC=com

      若要使用 {{OnPrem_Distinguished_Name}} 变量,请务必使用 Microsoft Entra Connectonpremisdistinguishedname 用户属性同步到Microsoft Entra ID。

    • CN={{onPremisesSamAccountName}}:管理员可以使用 Microsoft Entra Connect 连接到名为 onPremisesSamAccountName 的属性,将 samAccountName 属性从 Active Directory 同步到Microsoft Entra ID。 Intune 可以将该变量替换为证书使用者中的证书颁发请求的一部分。 samAccountName 属性是指用户登录名,该名称用于支持早期版本的 Windows(Windows 2000 之前)中的客户端和服务器。 用户登录名格式为: DomainName\testUser,或者仅 testUser

      若要使用 {{onPremisesSamAccountName}} 变量,请务必使用 Microsoft Entra Connect 同步 onPremisesSamAccountName 用户属性,以连接到Microsoft Entra ID。

    下面“设备证书类型”部分中列出的所有设备变量也可以在用户证书使用者名称中使用。

    通过将一个或多个以上变量与静态文本字符串组合使用,可以创建自定义使用者名称格式,例如:CN={{UserName}},E={{EmailAddress}},OU=Mobile,O=Finance Group,L=Redmond,ST=Washington,C=US

    该示例包含使用者名称格式,其中除了不仅使用了 CN 和 E 变量,还使用了组织单元、组织、位置、省/直辖市/自治区和国家/地区值的字符串。 CertStrToName 函数介绍此函数及其支持的字符串。

    如果设备没有与用户关联(例如,设备注册为 Android Enterprise 专用),则不支持用户属性。 例如,如果设备上没有用户,则在主体或 SAN 中使用 CN={{UserPrincipalName}} 的配置文件将无法获取用户主体名称。

  • “设备”证书类型
    “使用者名称格式”的格式选项包括以下变量:

    • {{AAD_Device_ID}}
    • {{DeviceId}} - 这是 Intune 设备 ID
    • {{Device_Serial}}
    • {{Device_IMEI}}
    • {{SerialNumber}}
    • {{IMEINumber}}
    • {{AzureADDeviceId}}
    • {{WiFiMacAddress}}
    • {{IMEI}}
    • {{DeviceName}}
    • {{FullyQualifiedDomainName}} (仅适用于 Windows 和已加入域的设备)
    • {{MEID}}

    可在文本框中指定这些变量,后跟变量的文本。 例如,可以将名为 Device1 的设备的公用名添加为 CN={{DeviceName}}Device1

    重要

    • 指定变量时,请将变量名称括在大括号 { } 中(如示例中所示),以避免出现错误。
    • 在设备证书的使用者或 SAN 中使用的设备属性(例如 IMEI、SerialNumber 和 FullyQualifiedDomainName)可能被有权访问设备的人员仿造
    • 设备必须支持在证书配置文件中为该配置文件指定的所有变量,才能在该设备上安装。 例如,如果在 SCEP 配置文件的使用者名称中使用 {{IMEI}} 并将其分配给没有 IMEI 号码的设备,则配置文件安装将失败。

后续步骤