宝塔反向代理 WordPress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

164次阅读

宝塔反向代理 WordPress

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

配置文件里做了修改:

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

申请SSL证书

默认已开启反向代理无法申请SSL证书。

会产生这个问题是因为在申请证书时,ca证书商会获取域名对应的ip,当开启反向代理后,ca证书商无法获取到我们申请域名的真实ip,所以开启反向代理时无法申请SSL证书,续签SSL证书会验证失败。

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

先关闭反向代理

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

申请SSL证书

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题
宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

配置文件增加目录,使后续的SSL证书可以自动续签:

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

重新开启反向代理

宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

解决 反代 wordpress 后 js、css 不走 https 的问题

在 wp-config.php 里面引入 wp-settings.php 前加上:

// 根据$_SERVER['HTTP_X_FORWARDED_PROTO']判断反向代理过来的是否为https请求
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
    $_SERVER['HTTPS']='on';                                         // 表示当前访问为https
    //$_SERVER['REQUEST_URI'] = "/cms".$_SERVER['REQUEST_URI'];       // 如果反向代理修改了URI,需要将全局变量_SERVER中的REQUEST_URI修改为对应的值,否则会一直重定向错误
}

// 判断是否访问请求经过代理
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];      // 如果经过代理,需要修改主机地址
}

## 推荐登录和访问后台强制使用https
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

反向代理里面增加了:

     # 向后端服务传递请求协议类型
    proxy_set_header        X-Forwarded-Proto       $scheme;
宝塔反向代理 Wordpress 自动续签 SSL 证书,解决 反代 wordpress 后 js、css 不走 https 的问题

参考:

https://legolasng.github.io/2018/06/26/nginx-reverse-proxy-wordpress

https://blog.csdn.net/qq_45576664/article/details/130171014

正文完
 0