我正在运行Odoo,希望添加一些缓存机制。
为了做到这一点,我简单地添加了一个服务人员和以下路由:
workbox.routing.registerNavigationRoute('/web/',workbox.strategies.staleWhileRevalidate((,
);
不幸的是,我现在总是收到以下错误消息:"混合内容:位于'的页面https://test.emanju.de/sw.js"通过HTTPS加载,但请求了不安全的资源"http://test.emanju.de/web/login"。此请求已被阻止;必须通过HTTPS提供内容。">
显然,Odoo引用了一些不安全的来源。现在我有以下问题:1( 我如何能够识别这些来源(所有来源(?我能扫描整页吗?2( 我还能运行我的服务人员并忽略不安全的文件吗?这是一种在不调整现有应用程序代码和修复所有不安全文件的情况下仍然遵循我的目标的方法吗?
提前感谢!
我也遇到了类似的问题:在电子学习模块("幻灯片"(中加载PDF演示文稿会通过http而不是https请求资源。在我的案例中起作用的是:
- 将
proxy_mode = True
添加到odoo.conf
的[options]
部分(如果使用docker进行部署,请将odoo.conf放入/etc/odoo/odoo.conf
中,在他们的docker-compose.yml
示例中,它是一个共享文件夹(./config:/etc/odoo
( - 我正在使用的nginx配置(我缺少X-Forwarded-Host标头(:
location / {
proxy_pass http://localhost:8069;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $host;
proxy_redirect off;
proxy_request_buffering off;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
client_max_body_size 10240m;
}
- 在开发人员模式下,转到"设置"->"技术"->"系统参数",并确保您的
web.base.url
包含https://(有些人还将web.base.url.freeze
设置为True,这似乎对我的安装没有影响(
重新启动nginx,重新启动odoo,瞧,幻灯片中的PDF是通过https://请求的。
(这不是Workbox特有的,因为无论何时使用https://
,不安全、混合的内容都是一个问题。(
在这篇"防止混合内容"的文章中,有一些关于如何识别正在加载的不安全资源的完整列表的建议。
如本文中所述,假设加载的每个URL都存在https://
版本,那么在提供HTML时可以使用Content-Security-Policy: upgrade-insecure-requests
响应头来告诉浏览器自动交换https://
URL。
服务工作者需要安全的来源,而安全的来源不能通过http://
加载资源。