S/MIME 证书配置文件

本文介绍了 X.509 链中的每项证书必须满足哪些要求,才能被信任并用于加密或 S/MIME 签名的电子邮件。

除了这些要求之外,证书链还必须锚定到 Google 为此目的明确信任的证书授权机构 (CA) 证书。您也可以选择接受来自受信任的证书授权机构的根证书。如需了解详情,请参阅根证书指南。

注意:

  • Google 提供并维护着一份受 Gmail 信任的 CA 证书列表,这些证书可用于 S/MIME。对于其中列出的 CA 证书,完全由 Google 自行决定是否予以信任,Google 保留随时移除根 CA 的权利,恕不另行通知。
  • 确保已安装的扩展程序不会与同一证书中的其他扩展程序相冲突。例如,如果定义了 nsCertTypes,则它们必须涵盖与密钥用途扩展、扩展密钥用途扩展和基本限制扩展完全相同的用途。

证书链规则

根 CA

字段 值

颁发者 DN

必须确认 CA。

例如,DN 不能为通用值,如“证书授权机构”。

持有者 DN

编码格式必须与“颁发者 DN”的每一字节都一致。

主体公钥信息

RSA 模数为 2048、3072 或 4096 位的 rsaEncryption。或者使用 secp256r1 或 secp384r1 的 ecPublicKey。

并非由中间发证 CA 颁发的中间 CA 证书

如果根实体与最终实体之间存在多个直接或间接的中间 CA,请使用此信息。

中间发证 CA 是颁发最终实体证书的中间 CA。此部分适用于链中的任何中间 CA,但颁发中间 CA 除外。

字段 值
版本 第 3 版
序列号 必须大于零 (0),并且当 DER 编码为整数时,必须小于或等于 20 个字节。
签名算法 使用 SHA‐256、SHA‐384 或 SHA‐512 的 RSA 算法。或者使用 SHA‐256、SHA‐384 或 SHA‐512 的 ECDSA 算法。
颁发者 DN

必须与发证 CA 的“持有者 DN”的每一字节都一致。

有效期 无要求
持有者 DN 无要求
主体公钥信息

RSA 模数为 2048、3072 或 4096 位的 rsaEncryption。或者使用 secp256r1 或 secp384r1 的 ecPublicKey。

扩展程序 状态 严重 值
密钥用途 必填 是

必须为以下项设置位位置:keyCertSign
可以设置任何其他位位置

基本限制条件 必填 是 cA 字段必须设置为 true
应存在 pathLenConstraint 字段
CRL 分布点 必填 否

必须至少存在一个可公开访问的 HTTP
统一资源标识符

(注意事项) 撤消服务器必须符合 CA/浏览器论坛基准要求 - 公共信任证书的颁发和管理(版本 1.3.2 或更高版本)的以下部分:
  • 4.9.7. CRL 颁发频率
  • 4.9.9. 在线撤消/状态检查可用性
  • 4.9.10. 在线吊销检查要求
    4.10.2 服务可用性

任何其他扩展程序 可能包含

颁发最终实体的中间 CA 证书

重要提示:证书链中必须至少存在 1 个中间 CA 证书。也就是说,根不得直接颁发最终实体证书。

字段 值
版本 第 3 版
序列号 必须大于零 (0),并且当 DER 编码为整数时,必须小于或等于 20 个字节。
签名算法

使用 SHA‐256、SHA‐384 或 SHA‐512 的 RSA 算法。或者使用 SHA‐256、SHA‐384 或 SHA‐512 的 ECDSA 算法。

颁发者 DN

必须与发证 CA 的“持有者 DN”的每一字节都一致。

有效期

“notBefore”和“notAfter”之间的差值

“notBefore”和“notAfter”之间的差值必须不超过 20 年,最好不超过 10 年。

持有者 DN

应指明 CA 的用途。

主体公钥信息

RSA 模数为 2048、3072 或 4096 位的 rsaEncryption。或者使用 secp256r1 或 secp384r1 的 ecPublicKey。

扩展程序 状态 严重 值
密钥用途 必填 是

必须设置的位位置:
keyCertSign
可以设置的位位置:
cRLSign
digitalSignature
如果直接用于签署 OCSP 响应,则必须存在:
digitalSignature

不能设置其他位的位置

扩展的密钥用途 必填 均有可能 必须存在:
emailProtection
不得存在:
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

基本限制条件

必填 是

cA 字段必须设置为 true
pathLenConstraint 字段应存在且应为 0

证书政策 可选 否

应提供用于标识 CA 运营所依据的政策的 policyIdentifier,且不应为 anyPolicy。
如果存在 cps,则必须包含有效的 HTTP 或 HTTPS 链接。

CRL 分布点 必填 否

必须至少存在一个可公开访问的 HTTP
uniformResourceIdentifier。

(注意事项)

执行撤消操作的服务器必须遵循 CA/浏览器论坛出版的《关于颁发和管理受大众信任的证书的基本要求和证书政策》第 1.3.2 版或更高版本的下列部分:

  • 4.9.7. CRL 颁发频率
  • 4.9.9. 在线撤消/状态检查可用性
  • 4.9.10. 在线撤消检查要求
  • 4.10.2. 服务可用性
任何其他扩展程序 可选 否

可包含。

最终实体证书

字段 值
版本 第 3 版
序列号

必须大于零 (0),并且必须包含至少 64 个不可预测的位。

注意:将更新为反映 CA/Browser Forum Baseline Requirements Certificate Policy 最终实体序列号熵要求。

签名算法 使用 SHA‐256、SHA‐384 或 SHA‐512 的 RSA 算法。或者使用 SHA‐256、SHA‐384 或 SHA‐512 的 ECDSA 算法。
颁发者 DN

必须与发证 CA 的“持有者 DN”的每一字节都一致。

有效期

“notBefore”和“notAfter”之间的差值必须不大于 27 个月。

notBefore 时间必须为签名时间前后 48 小时。

持有者 DN

在签发电子邮件地址以外的任何主题相对专有名称之前,必须使用公开记录且经过审核的程序进行严格验证。如需了解可接受的程序,请参阅 CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates(版本 1.3.2 或更高版本)的第 3.2.3 节“Authentication of Individual Identity”(个人身份验证)。

此外,只要有电子邮件地址(例如 commonName 或 emailAddress 字段的地址),就必须在“持有人备用名称”扩展程序中将此地址作为 rfc822Name 包含在内。

主体公钥信息

RSA 模数为 2048、3072 或 4096 位的 rsaEncryption。或者使用 secp256r1 或 secp384r1 的 ecPublicKey。

扩展程序 状态 严重 值
密钥用途 (RSA) 必填 是

必须为以下用途设置位位置:
digitalSignature
和/或
nonRepudiation/contentCommitment
可以为以下用途设置位位置:
dataEncipherment
keyEncipherment

不能设置其他位的位置。

密钥用途 (ECDH) 必填

必须设置以下用途的位位置:
digitalSignature
可以设置以下用途的位位置:
nonRepudiation/contentCommitment
keyAgreement
encipherOnly(如果设置了 keyAgreement)
decipherOnly(如果设置了 keyAgreement)

不能设置其他位的位置。

扩展的密钥用途 必填 均有可能

必须存在:
emailProtection
不得存在:
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

基本限制条件

可选 均有可能

如果存在,则 cA 字段不得设置为 true
pathLenConstraint 字段不得存在

证书政策 必填 否

必须存在:必须提供用于标识证书签发所依据的政策的 policyIdentifier,且不得为 anyPolicy。

可以存在:cps(如果存在),必须包含有效的 HTTP 或 HTTPS 链接,指向签发证书所依据的 CPS。

授权信息访问权限

可选 否

caIssuers 和 ocsp(如果存在)必须包含至少一个可公开访问的 HTTP 统一资源标识符。

AccessDescription 不能包含特定于个别证书的任何标签或参数。

CRL 分布点 必填 否

必须至少存在一个可公开访问的
HTTP 统一资源标识符

(注意事项)

撤消服务器必须按照 CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates(版本 1.3.2 或更高版本)的以下部分运行:

  • 4.9.7. CRL 颁发频率
  • 4.9.9. 在线撤消/状态检查可用性
  • 4.9.10. 在线撤消检查要求
  • 4.10.2. 服务可用性

持有者备用名称

必填 否

必须包含至少一项 rfc822Name 类型的内容。
不得包含以下类型的项:
dNSName
iPAddress
uniformResourceIdentifier
必须通过公开记录且经过审核的措施来验证每个 rfc822Name,以确保提交请求的实体控制着与相应电子邮件地址关联的电子邮件账号,或者已获得电子邮件账号持有人的授权,可以代表账号持有人行事。

任何其他扩展程序

可选 否 可包含。