gpt4 book ai didi

php - 服务器和客户端指示的 HTTPS 不匹配

转载 作者:行者123 更新时间:2023-12-02 18:18:09 27 4
gpt4 key购买 nike

这是我打开 phpMyAdmin 的登录(索引)页面时出现的警告:

There is mismatch between HTTPS indicated on the server and client.
This can lead to non working phpMyAdmin or a security risk.
Please fix your server configuration to indicate HTTPS properly.

该错误应该是由我的客户端和 phpmyadmin 本身之间的负载平衡器引起的。 SSL 在负载均衡器上终止,因此正在使用的 URL(我认为 phpmyadmin 在请求 header 中接收到的 URL)是 https://mydomain/phpmyadmin .

负载均衡器通过http与phpmyadmin通信,因此lb和pma之间使用的URL是http://mydomain/phpmyadmin (不是 https)。

我在 github 上发现了这篇非常合适的文章:Possibility to deactivate SSL connection #170它适用于 Docker 容器,并描述了要传递到名为“PMA_ABSOLUTE_URI”的容器的环境变量来解决问题。

这将在 phpmyadmin NON Docker 中的哪个设置?

对于我的问题的任何其他解决方案也非常感谢。

旁注: 登录后 Phpmyadmin 工作正常。您可以登录,登录后没有任何警告,您可以毫无问题地执行所有交互。我只是担心这个警告。

最佳答案

我的设置与您所描述的完全相同。前端负载均衡器充当反向代理,也充当 SSL/TLS 终结器。负载均衡器以纯 http 方式与运行 phpMyAdmin 的后端服务器进行通信。

当我从 4.0.4.1 升级到 4.9.0.1 时,我在 phpMyAdmin 登录屏幕上收到了与您相同的警告。我能够通过“伪造”协议(protocol)从 http 到 https 在反向代理上解决这个问题。就我而言,我的反向代理是 Nginx Web 服务器,在传递到后端服务器之前,我添加了 X-Forwarded-Proto:

 server {
listen 443;
server_name my.phpmyadmin.example.com;

[... log and ssl settings ...]

location / {
include /etc/nginx/proxy.conf;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://backendserver;
}
}

通过添加 proxy_set_header X-Forwarded-Proto https; 这告诉后端服务器客户端与代理的​​通信是通过 https 进行的。如果不设置此 header ,phpMyAdmin 可能会识别(不确定,只是猜测)它是在 https://URL 上加载的,但通信(反向代理和 phpMyAdmin 服务器之间)是通过 http 进行的。因此,这是一个正确的警告。

一旦重新加载 Nginx,警告就会从 phpMyAdmin 登录屏幕上消失。

关于php - 服务器和客户端指示的 HTTPS 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56655548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com