google-chrome - 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
解决方案
好的,这已经修复了,和往常一样,它真的很基本,感觉有点糟透了......
Chrome 浏览器不喜欢 CSP 语句中的换行符。一旦我把声明写成一行,它就完美地工作了。
推荐阅读
- spring - 查询单个资源时,Spring Data Rest将连接列对象输出为JSON字段
- php - 当我尝试关闭 ssh2 连接时,没有回复
- django - 没有通过 Django GET URL 收到 # 和 % 符号
- java - 单例中的全局状态
- android - 如何使用 arm-linux-androideabi 编译器构建 iotivity-lite?
- python - 如何使用 PyPDF2 在不损失质量的情况下压缩 pdf
- reactjs - Reactjs 在地图函数中设置状态
- java - 我可以建议 JVM 何时进行垃圾收集吗?
- python - python docker apis 是否可以创建一个容器并运行一个命令?
- android - 为什么使用Gson反序列化到另一个类后会生成LinkedTreeMap?