电话
13363039260
系统体检时提示:服务器无法识别HTTPS证书
方案一:服务器开启强制https模式,我们以宝塔服务器为例:
开启这项就ok了
如果还是不行,就往下
方案二:让服务商帮你修改服务器配置,文章内容来自网上,内容如下:
检查nginx反向代理配置文件的ssl配置部分。
upstream xxxx.com {
server 10.10.10.208:80;
}
server{
listen 443;
server_name xxxx.com;
ssl on;
ssl_certificate /etc/nginx/crt/xxxx.com/xxxx.com.crt;
ssl_certificate_key /etc/nginx/crt/xxxx.com/xxxx.com.key;
ssl_session_timeout 5m;
location / {
proxy_pass http://xxxx.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
发现上述配置文件ssl证书正常,但是PHP获取不到X-Forwarded-Proto或者HTTPS的变量值,尝试在反向代理配置中加入以下配置:
再次通过php调试打印出现https内容:
[HTTP_X_FORWARDED_PROTO] => https [HTTPS] => on
再次访问PHP的内容已经恢复正常。
Apache中的配置
RequestHeader set X-Forwarded-Proto "https"
X-Forwarded-Proto(XFP)报头是用于识别协议(HTTP 或 HTTPS),其中使用的客户端连接到代理或负载平衡器一个事实上的标准报头。您的服务器访问日志包含在服务器和负载平衡器之间使用的协议,但不包括客户端和负载平衡器之间使用的协议。要确定客户端和负载平衡器之间使用的协议,X-Forwarded-Proto可以使用请求标头。
此标头的标准化版本是 HTTP Forwarded标头。
句法
X-Forwarded-Proto: <protocol>
指令
<protocol> 转发的协议(http 或 https)。
例子
X-Forwarded-Proto: https
其他非标准形式:
# Microsoft Front-End-Https: onX-Forwarded-Protocol: https X-Forwarded-Ssl: on X-Url-Scheme: https
如果还是不行,就往下
方案三:手动设置https识别方法,打开根目录的index.php
// 手动修复https识别文件 define('IS_HTTPS_FIX', 1);
把这段代码放到index.php里面,如下所示
Tag: 服务器 服务