Expect-CT
已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已被从相关的 Web 标准中删除,或者正在被删除,或者可能仅出于兼容性目的而保留。避免使用它,如果可能,请更新现有代码;请参见此页面底部的兼容性表 以指导您的决定。请注意,此功能可能随时停止工作。
Expect-CT
标头允许网站选择加入证书透明度 要求的报告和/或执行。证书透明度 (CT) 旨在防止对该网站的错误颁发的证书的使用被忽视。
只有 Google Chrome 和其他基于 Chromium 的浏览器实现了 Expect-CT
,而 Chromium 已从版本 107 中弃用了该标头,因为 Chromium 现在默认情况下强制执行 CT。请参阅Chrome 平台状态 更新。
CT 要求可以通过以下任何一种机制来满足
- X.509v3 证书扩展,允许嵌入由各个日志颁发的已签署证书时间戳。大多数由公认的 CA 颁发并在网上使用的 TLS 证书包含嵌入的 CT。
- 握手期间发送的类型为
signed_certificate_timestamp
的 TLS 扩展 - 支持 OCSP 钉扎(即
status_request
TLS 扩展)并提供SignedCertificateTimestampList
注意:当网站启用 Expect-CT
标头时,它们请求浏览器检查该网站的任何证书是否出现在公共 CT 日志 中。
注意:浏览器忽略通过 HTTP 的 Expect-CT
标头;该标头仅对 HTTPS 连接有效。
注意:Expect-CT
自 2021 年 6 月起基本上已过时。自 2018 年 5 月起,所有新的 TLS 证书都应默认支持 SCT。在 2018 年 3 月之前颁发的证书允许的有效期为 39 个月,因此它们已于 2021 年 6 月到期。Chromium 计划弃用 Expect-CT
标头,并最终将其删除。
语法
Expect-CT: report-uri="<uri>",
enforce,
max-age=<age>
指令
max-age
-
接收
Expect-CT
标头字段后的秒数,在此期间,用户代理应将接收消息的主机视为已知的Expect-CT
主机。如果缓存接收的值大于它可以表示的值,或者如果它的后续任何计算溢出,则缓存将认为此值为 2,147,483,648 (2^31) 或它可以表示的最大正整数。
report-uri="<uri>"
可选-
用户代理应报告
Expect-CT
错误的 URI。当与
enforce
指令一起出现时,该配置被称为“强制执行和报告”配置,它向用户代理发出信号,即应强制执行对证书透明度策略的遵守以及应报告违规行为。 enforce
可选-
向用户代理发出信号,表明应强制执行对证书透明度策略的遵守(而不是仅报告遵守情况),并且用户代理应拒绝违反其证书透明度策略的未来连接。
当
enforce
指令和report-uri
指令都存在时,该配置被称为“强制执行和报告”配置,它向用户代理发出信号,即应强制执行对证书透明度策略的遵守,并且应报告违规行为。
示例
以下示例指定了对证书透明度的强制执行,持续 24 小时,并将违规行为报告给 foo.example.com
。
Expect-CT: max-age=86400, enforce, report-uri="https://foo.example.com/report"
注意
手动添加到信任存储的根 CA 会覆盖并抑制 Expect-CT
报告/强制执行。
浏览器不会记住 Expect-CT
策略,除非该网站已“证明”它可以提供满足证书透明度要求的证书。浏览器在确定哪个 CT 日志被认为是可信的以供证书已记录到方面,实施了自己的信任模型。
Chrome 的构建旨在在安装的构建日期后的 10 周停止强制执行 Expect-CT
策略。
规范
规范 |
---|
Expect-CT 扩展用于 HTTP # section-2.1 |
浏览器兼容性
BCD 表仅在浏览器中加载