首页 > 解决方案 > CSP 设置使用 ERR_HTTP2_PROTOCOL_ERROR 杀死 Chrome 中的站点

问题描述

我正在向我的网站添加安全标头。我正在运行 Nginx 服务器。

我已使用“内容安全策略 (CSP) 生成器”chrome 扩展来创建我的 CSP 设置。

添加到 nginx ssl.conf 中的 CSP 语句为:

add_header Content-Security-Policy "default-src 'self';
script-src 'report-sample' 'self' https://maps.googleapis.com/.../util.js;
style-src 'report-sample' 'self' https://code.jquery.com https://fonts.googleapis.com;
object-src 'none';
base-uri 'self';
connect-src 'self';
font-src 'self' https://fonts.gstatic.com;
frame-src 'self';
img-src 'self' data: https://code.jquery.com https://maps.gstatic.com;
manifest-src 'self';
media-src 'self';
report-uri https://???.endpoint.csper.io/;
worker-src 'none';";

这些设置似乎唯一可以在其中工作的浏览器是 Firefox。

当我在 Chrome (v77.01) 中加载网站时,网站不会加载。它在 Edge(版本 83.0.478.54)、Safari 和 Opera 中显示相同的结果。

我看到以下信息:

无法访问此站点 https:domain.com 上的网页可能暂时关闭,或者它可能已永久移至新网址。ERR_HTTP2_PROTOCOL_ERROR

ssl 证书是 Lets Encrypt,将于 2020 年 9 月到期。

任何建议将不胜感激。

干杯

格雷格·J

标签: google-chromehttp-headers

解决方案


好的,这已经修复了,和往常一样,它真的很基本,感觉有点糟透了......

Chrome 浏览器不喜欢 CSP 语句中的换行符。一旦我把声明写成一行,它就完美地工作了。


推荐阅读