配置企业证书条件

Chrome 企业进阶版的一个关键原则是,根据您和您设备的上下文信息授予服务访问权限。Chrome 企业进阶版 通过评估多个数据源,动态推断授予单个用户或设备的访问权限级别,并在决策过程中使用此信任级别。

Access Context Manager 是 Chrome 企业进阶版的零信任政策引擎。借助 Access Context Manager,您可以为应用和 Google Cloud 资源定义基于属性的精细访问权限控制。

使用访问权限级别根据请求的上下文信息允许对资源的访问。借助访问权限级别,您可以开始组织信任层。例如,您可以创建一个名为 High_Level 的访问权限级别,该级别允许一小部分具有高度特权的用户发出请求。您也可以识别一个更通用的组来信任,例如您允许发出请求的 IP 地址范围。在这种情况下,您可以创建一个名为 Medium_Level 的访问权限级别以允许这些请求。

零信任访问权限的关键要求之一是仅在公司管理或拥有设备时允许访问。您可以通过多种方式确定设备是否归公司所有。一种方法是确定设备上是否存在由公司颁发的有效证书。设备上的企业证书可用于证明设备为公司所有。

用于情境感知访问权限的企业级证书是整个 Chrome 企业进阶版基于证书的访问权限解决方案的一项功能。此功能利用设备证书作为备用的情境感知信号来确定设备是否为公司自有资产。Google Chrome 浏览器 110 或更高版本支持此功能。

由于一个设备可以有多个证书,因此您可以通过 .exists(e, p) 宏在自定义访问权限级别中访问企业证书:

device.certificates.exists(cert, predicate)

在此示例中,cert 是在绑定到设备证书的 predicate 中使用的标识符。exists() 宏将每个元素的谓词结果与“or”(||) 运算符组合在一起,这意味着,只要有一个证书满足 predicate 表达式,宏便会返回 true。

该证书具有以下可以一起检查的属性。请注意,比较字符串时区分大小写。

属性 说明 谓词表达式示例(其中 cert 是宏的标识符)
is_valid 如果证书有效且未过期,则返回 true(布尔值)。

检查证书是否未过期且由可信锚点签名。请注意,Endpoint Verification 不会检查证书撤消情况。

cert.is_valid
cert_fingerprint 证书指纹(未填充字符的 base64 编码 SHA256)

指纹是 DER 编码证书的未填充 base64 编码 SHA256 摘要(二进制格式)。您可以按照以下程序,使用 OpenSSL 通过证书生成字符串(PEM 格式):

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha | tr -d =

cert.cert_fingerprint == origin.clientCertFingerprint()
root_ca_fingerprint 用于为证书签名的根 CA 证书的指纹(未填充字符的 base64 编码 SHA256)。

指纹是 DER 编码证书的未填充 base64 编码 SHA256 摘要(二进制格式)。您可以按照以下程序,使用 OpenSSL 通过证书生成字符串(PEM 格式):

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha | tr -d =

cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT"
issuer 证书颁发者名称(全称)

如需查找证书颁发者名称,您可以使用以下方法:

在证书上运行以下命令:

$ openssl x509 -in ca_1.crt -issuer issuer= /C=US/ST=CA/L=MTV/O=ExampleCorp/OU=ExampleUnit/CN=inter_1/emailAddress=admin@example.com

如需获取访问权限级别的证书颁发者字符串,请反转输出并将每个正斜杠 (/) 替换为英文逗号 (,):

EMAILADDRESS=admin@example.com, CN=inter_1, OU=ExampleUnit, O=ExampleCorp, L=MTV, ST=CA, C=US

cert.issuer == "EMAILADDRESS=admin@example.com, CN=inter_1, OU=ExampleUnit, O=ExampleCorp, L=MTV, ST=CA, C=US"
subject 证书的主题名称(全称)。 cert.subject == "CA_SUB"
serial_number 证书的序列号(字符串) cert.serial_number == "SERIAL_NUMBER"
template_id 证书的 X.509 扩展程序证书模板的模板 ID(字符串)。cert.template_id == "TEMPLATE_ID"

下表包含您可以设置的政策示例:

政策示例 表达式
设备具有由公司根证书签署的有效证书。 device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
设备具有由颁发者 CA_ABC 颁发的有效证书。 device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=admin@example.com, CN=inter_1, OU=ExampleUnit, O=ExampleCorp, L=MTV, ST=CA, C=US")

配置企业证书

在配置企业证书之前,请确保您已配置自定义访问权限级别。有关说明,请参阅创建自定义访问权限级别。

您可以使用 Access Context Manager 自定义访问权限级别定义来设置适当的政策。自定义访问权限级别使用在通用表达式语言 (CEL) 的子集中编写的布尔表达式来测试发出请求的客户端的属性。

在管理控制台中上传信任锚

为了使 Chrome Enterprise Premium 能够收集和验证设备企业证书,您必须上传用于颁发设备证书的信任锚和任何中间证书。信任锚是指自签名根 CA(证书授权机构)证书以及相关的中间证书和从属证书。完成以下步骤以上传信任锚:

  1. 转到管理控制台,然后导航至设备 > 网络 > 证书。
  2. 选择适当的组织单元。
  3. 选择添加证书。
  4. 输入证书名称。
  5. 上传证书。
  6. 选中端点验证复选框。
  7. 点击 Add(添加)。
  8. 确保用户属于您为其上传信任锚的组织部门。

配置 AutoSelectCertificateForUrls 政策

要让端点验证搜索设备证书并通过 Chrome 收集,您必须完成以下步骤,以配置 AutoSelectCertificateForUrls 政策:

  1. 确保 Chrome 浏览器由 Chrome 浏览器云管理服务管理。

  2. 在管理控制台中,添加 AutoSelectCertificateForUrls 政策:

    1. 转到管理控制台,然后导航至设备 > Chrome > 设置 > 用户和浏览器设置 > 客户端证书。
    2. 选择适当的组织单元。
    3. 根据以下示例添加政策 AutoSelectCertificateForUrls:

      {"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"CERTIFICATE_ISSUER_NAME"}}}
      

      将 CERTIFICATE_ISSUER_NAME 替换为颁发者 CA 的通用名称。请勿修改 pattern 的值。

要验证政策配置,请完成以下步骤:

  1. 在浏览器中前往 chrome://policy。
  2. 验证 AutoSelectCertificateForUrls 的已配置值。
  3. 确保将政策适用对象值设置为机器。在 ChromeOS 上,该值会应用于当前用户。
  4. 确保政策的状态没有冲突。

后续步骤