我有一个域(我们称之为
Domain1
或 https://img.{domain_name_1}.com
),我在其中存储了用于服务 WordPress 临时网站的图像,该网站当前托管在不同的服务器上。对于后者,我只有一个 IP 公共地址(因此目前还不是真正的 FQDN),我们将其称为 Domain2
或 https://99.999.999.999
。在此服务器上,我安装了一个自签名 SSL 证书,只是为了加密我用于 phpMyAdmin 和 WordPress 管理区域的凭据。同时,Domain1
是由 Let's encrypt 保护的 SSL。我可以通过 Domain1
或 http
访问 https
,因为我有从 http
到 https
的重定向。
现在,我将有关 WordPress 临时网站图像的所有数据库记录都指向 Domain1
。当我访问Domain2
页面的https://99.999.999.999/postcat-postname/
时,除了图像之外的所有内容都是可见的。
Google Chrome 控制台工具显示:
混合内容:“...”处的页面已通过 HTTPS 加载,但已请求 不安全的图像“http://...”。该请求已被阻止;这 内容必须通过 HTTPS 提供。
这很奇怪,我无法理解该错误,因为:
Domain1
已得到保护;wp_post
显示带有 htpps
的图片链接。这是该州的照片:
Domain1
:它为 Domain2
提供图片,通过 Let's encrypt 保护 SSL
Domain2
:wordpress 暂存网站。自签名 SSL。 MySql DB 中的媒体文件记录链接到 https
的 Domain1
地址。
您在图像域上使用的重定向仅在请求发送到服务器时才会解析。如果您链接到主站点中的 HTTP 协议,浏览器将在发送请求之前阻止该请求,因此您的 HTTP 到 HTTPS 重定向将不会发生。确保
src
协议中包含 HTTPS,这应该可以解决问题。您可以直接在数据库中更新链接,也可以使用允许您跟踪资产的插件。
这里有一些:
您可能还想查看这篇文章,其中讨论了您所处情况下的共享证书。