本文介绍了 X.509 链中的每份证书都必须满足哪些要求才能获得信任并用于加密或 S/MIME 签名的电子邮件。
除了满足这些要求,该证书链还必须与一个用于此目的,且明确受 Google 信任的证书授权机构 (CA) 证书关联。您也可以选择接受来自受信任的证书授权机构的根证书。有关详情,请参阅根证书指南。
注意:
- Google 会提供和维护受 Gmail 信任且适用于 S/MIME 的 CA 证书列表。对于其中列出的 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 |
证书政策 | 可选 | 否 |
必须提供 policyIdentifier 用以确认 CA 运作时要遵循的政策,并且值不能为 anyPolicy。 |
CRL 分布点 | 必填 | 否 |
必须包含至少一个可供所有人访问的 HTTP |
(注意事项) |
执行撤消操作的服务器必须遵循 CA/浏览器论坛出版的《关于颁发和管理受大众信任的证书的基本要求和证书政策》第 1.3.2 版或更高版本的下列部分:
|
||
任何其他扩展程序 | 可选 | 否 |
可包含。 |
最终实体证书
字段 | 值 | ||
---|---|---|---|
版本 | 第 3 版 | ||
序列号 |
必须大于零 (0),并且必须包含至少 64 个不可预测的位。 注意:此字段将被更新,以符合 CA/浏览器论坛出版的《基本要求和证书政策》中关于最终实体序列号熵的要求。 |
||
签名算法 | 使用 SHA‐256、SHA‐384 或 SHA‐512 的 RSA 算法。或者使用 SHA‐256、SHA‐384 或 SHA‐512 的 ECDSA 算法。 | ||
颁发者 DN |
必须与发证 CA 的“持有者 DN”的每一字节都一致。 |
||
有效期 |
“notBefore”和“notAfter”之间的差值必须不大于 27 个月。 notBefore 时间必须为签名时间前后 48 小时。 |
||
持有者 DN |
必须采取公开记录和审核的规程,在颁发任何“持有者相关标识名”(不包括电子邮件地址)之前对其执行严格的验证。请参阅 CA/浏览器论坛出版的《关于颁发和管理受大众信任的证书的基本要求和证书政策》第 1.3.2 版或更高版本的 3.2.3“个人身份验证”这一部分,了解可使用的规程。 此外,只要有电子邮件地址(例如 commonName 或 emailAddress 字段的地址),就必须在“持有人备用名称”扩展程序中将此地址作为 rfc822Name 包含在内。 |
||
持有者的公钥信息 |
RSA 模数为 2048、3072 或 4096 位的 rsaEncryption。或者使用 secp256r1 或 secp384r1 的 ecPublicKey。 |
||
扩展程序 | 状态 | 是否重要 | 值 |
密钥用途 (RSA) | 必填 | 是 |
必须设置以下位的位置: 不能设置其他位的位置。 |
密钥用途 (ECDH) | 必填 |
必须设置以下位的位置: 不能设置其他位的位置。 |
|
扩展的密钥用途 | 必填 | 均有可能 |
必须包含以下字段: |
基本限制条件 |
可选 | 均有可能 |
如果包含 cA 字段,则不能将其设置为 true |
证书政策 | 必填 | 否 |
必须包含:必须提供 policyIdentifier 用以确认颁发证书时要遵循的政策,并且值不能为 anyPolicy。 可能包含:如果包含 cps,则必须提供指向颁发的证书所遵循的 CPS 的有效 HTTP 或 HTTPS 链接。 |
授权信息访问权限 |
可选 | 否 |
caIssuers 和 ocsp(如果包含)必须包含至少一个可供所有人访问的 HTTP uniformResourceIdentifier。 AccessDescription 不能包含特定于个别证书的任何标签或参数。 |
CRL 分布点 | 必填 | 否 |
必须包含至少一个可供所有人访问的 |
(注意事项) |
执行撤消操作的服务器必须遵循 CA/浏览器论坛出版的《关于颁发和管理受大众信任的证书的基本要求和证书政策》第 1.3.2 版或更高版本的下列部分:
|
||
持有者备用名称 |
必填 | 否 |
必须包含至少一项 rfc822Name 类型的内容。 |
任何其他扩展程序 |
可选 | 否 | 可包含。 |