Drupal - 使用ssl证书时出现混合内容错误

时间:2016-03-25 14:52:23

标签: ssl drupal drupal-7

我的drupal安装工作正常。我试图在一个运行在nginx反向代理后面的Docker Container上迁移那个。一切似乎都很好,但我有一些无法加载的.js和.css文件,因为在drupal中它们与http链接。错误是:

Mixed Content: The page at https://proxy.xx.xx/ was loaded
over HTTPS, but requested an insecure stylesheet
http://proxy.xx.xx/sites/default/files/css/css_xE-rWrJf-
fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css'. This request has been
blocked; the content must be served over HTTPS.

我有7个这样的东西,我找不到drupal中调用这些文件的位置或者如何将http更改为https。

最好的问候。

2 个答案:

答案 0 :(得分:1)

好吧,所以我开始将以下内容添加到Drupal settings.php:

$conf['reverse_proxy'] = TRUE;
$base_url = 'https://whatever-your-domain-is.com';
$conf['reverse_proxy_addresses'] = array('internal_nginx_proxy_ip');
$conf['reverse_proxy_header'] = 'HTTP_X_FORWARDED_FOR';

这适用于jwilder的nginx-proxy容器以及JrCs' letsencrypt companion容器。 nginx容器正在处理HTTPS / SSL(证书)并在内部与Drupal-container对话。 Drupal容器只需要使用3 ENV VARS VIRTUAL_HOST,LETSENCRYPT_HOST,LETSENCRYPT_EMAIL运行即可设置所有内容并发挥其魔力。

唯一的缺点:Drupal容器的apache日志显示了nginx代理的内部IP。但是nginx日志显示正确的客户端IP,Drupal显然也正确,所以它对我来说只是一个小麻烦。

我想settings.php的增加也应该适用于自定义/手动设置。

答案 1 :(得分:0)

我们发现了什么问题。 Drupal在没有ssl的情况下与Nginx代理进行通信。一些配置,它没关系。