本文介绍了 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 或更高版本)的以下部分:
|
||
| 任何其他扩展程序 | 可能包含 | ||
颁发最终实体的中间 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。 |
||
| 扩展程序 | 状态 | 严重 | 值 |
| 密钥用途 | 必填 | 是 |
必须设置的位位置: 不能设置其他位的位置 |
| 扩展的密钥用途 | 必填 | 均有可能 | 必须存在: emailProtection 不得存在: serverAuth codeSigning timeStamping anyExtendedKeyUsage |
|
基本限制条件 |
必填 | 是 |
cA 字段必须设置为 true |
| 证书政策 | 可选 | 否 |
应提供用于标识 CA 运营所依据的政策的 policyIdentifier,且不应为 anyPolicy。 |
| CRL 分布点 | 必填 | 否 |
必须至少存在一个可公开访问的 HTTP |
| (注意事项) |
执行撤消操作的服务器必须遵循 CA/浏览器论坛出版的《关于颁发和管理受大众信任的证书的基本要求和证书政策》第 1.3.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) | 必填 | 是 |
必须为以下用途设置位位置: 不能设置其他位的位置。 |
| 密钥用途 (ECDH) | 必填 |
必须设置以下用途的位位置: 不能设置其他位的位置。 |
|
| 扩展的密钥用途 | 必填 | 均有可能 |
必须存在: |
|
基本限制条件 |
可选 | 均有可能 |
如果存在,则 cA 字段不得设置为 true |
| 证书政策 | 必填 | 否 |
必须存在:必须提供用于标识证书签发所依据的政策的 policyIdentifier,且不得为 anyPolicy。 可以存在:cps(如果存在),必须包含有效的 HTTP 或 HTTPS 链接,指向签发证书所依据的 CPS。 |
|
授权信息访问权限 |
可选 | 否 |
caIssuers 和 ocsp(如果存在)必须包含至少一个可公开访问的 HTTP 统一资源标识符。 AccessDescription 不能包含特定于个别证书的任何标签或参数。 |
| CRL 分布点 | 必填 | 否 |
必须至少存在一个可公开访问的 |
|
(注意事项) |
撤消服务器必须按照 CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates(版本 1.3.2 或更高版本)的以下部分运行:
|
||
|
持有者备用名称 |
必填 | 否 |
必须包含至少一项 rfc822Name 类型的内容。 |
|
任何其他扩展程序 |
可选 | 否 | 可包含。 |