前言
现在SSL越来越普及了。但是很多朋友不知道如何设置、今天学派吧-给新朋友演示下。
- 一、系统文件修改
- 二、后台文件修改
- 三、安装插件
首先按照自己的项目运行服务器把证书安装好,干货君以腾讯云为例:证书安装指引 – 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;
}
}
上方搞定在nginx.conf中加入下面这个代码块,你要负载均衡(集群使用)也是在这个代码块中搞
upstream www{
#下方写要代理的ip和端口号,下面ip是乱写的,真实的已隐去
server 111.111.205.11:56;
}
server {
listen 80;
server_name http://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、等等。。。
一、系统文件修改
路径:网站根目录\wp-includes\functions.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); }
二、后台文件修改
路径:网站根目录\wp-config.php
找到代码:
*
* @package WordPress
*/
在下方添加如下代码:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
三、安装插件
完成以上两步操作后,可以正常访问https开头的网站和后台,
下载这个叫“really-simple-ssl”的WordPress插件:
Really Simple SSL
登录后台安装此插件。
至此,真正意义上解决wordpress全站开启https的ssl证书问题。
如果写的不好,请留情。欢迎朋友来投稿。