专注分享
优质IT技能干货

WordPress一次性开启https全局以及潜在问题解决

WordPress一次性搞定ssl全局设置以及潜在问题解决

首先按照自己的项目运行服务器把证书安装好,干货君以腾讯云为例:详情看官方文档

干货君使用nginx反向代理,apache作为项目运行服务器为例,修改nginx/conf文件夹下面的nginx.conf(将下方代码块添加到文件中或把文件中443代码块按此方式设置)。

server {

listen 443;

server_name www.nrgh.org; #填写绑定证书的域名

ssl on;

ssl_certificate 1_www.nrgh.org_bundle.crt;

ssl_certificate_key 2_www.nrgh.org.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置

ssl_prefer_server_ciphers on;

location / {

#项目路径,或反向代理的代码块

proxy_pass http://nrgh;

}

}

WordPress一次性搞定ssl全局设置以及潜在问题解决

上方搞定在nginx.conf中加入下面这个代码块,你要负载均衡(集群使用)也是在这个代码块中搞

upstream www{

#下方写要代理的ip和端口号,下面ip是乱写的,真实的已隐去

server 111.111.205.11:56;

}

WordPress一次性搞定ssl全局设置以及潜在问题解决

server {

listen 80;

server_name https://www.nrgh.org

if ($scheme = http ) {

#http请求转换为https

return 301 https://$server_name$request_uri;

}

#即所有请求都到这里去找分配

location / {

#全局实现80进来的请求,重定向为https了

proxy_pass http://www;

#rewrite ^/(.*) https://$server_name/$1 permanent;

}

}

上面都配置之后,运行 nginx -t 并重启nginx试试效果

接下来说下会出现的问题:

1、上面都搞定之后,wordpress网站可能出现css和js还是走http请求,文章链接走https请求(这时候需要你把wordpress的媒体文件绝对路径替换相对路径)

2、wordpress/wp-admin 后台进不去,登录跳转莫名错误或无反应;

3、网上找了很多解决方案,却依然没有解决,甚至搞的连网站都打不开了;

4、等等。。。

下面是解决方案,以wordpress4.96为例,全部有效

一、修改系统文件(wordpress文件夹)

路径:网站根目录/wp-includes/f unctions.php(或者放到wp主题的function.php也可以,二选一)

找到代码 require( ABSPATH . WPINC . ‘/option.php’ );

在下方添加:

add_filter(‘script_loader_src’, ‘agnostic_script_loader_src’, 20,2);

function agnostic_script_loader_src($src, $handle) {

return preg_replace(‘/^(http|https):/’, ”, $src); }

add_filter(‘style_loader_src’, ‘agnostic_style_loader_src’, 20,2);

function agnostic_style_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src);

}

二、修改wordpress主题后台文件(wp)

路径:网站根目录/wp-config.php

找到代码:

*

* @package WordPress

*/

在下方添加如下代码:(目的是登录和后台强制开启SSL。)

$_SERVER[‘HTTPS’] = ‘on’;

define(‘FORCE_SSL_LOGIN’, true);

define(‘FORCE_SSL_ADMIN’, true);

三、安装插件

完成以上两步操作后,可以正常访问https开头的网站和后台,

下载这个叫“really-simple-ssl”的WordPress插件:

https://wordpress.org/plugins/really-simple-ssl/

登录后台安装此插件。

至此,真正意义上解决wordpress全站开启https的ssl证书问题。

上述第三步骤,也可以直接修改wp主题下的function文件

打赏
未经允许不得转载:牛人干货 » WordPress一次性开启https全局以及潜在问题解决

打赏干货君

支付宝扫一扫打赏

微信扫一扫打赏