如何在wordpress上开启https
- ssl证书(本人在腾讯云申请的免费1年的)
- 一个wordpress博客
首先下载好ssl证书,下载解压后里面有apache,nginx,IIS的证书文件,找到nginx中的证书上传到/usr/local/nginx/conf这个文件夹当中。然后找到你站点的配置文件,应该在/usr/local/nginx/conf/vhost目录下,目录下的website.conf就是站点的配置文件了。
server { listen 443; ssl on; ssl_certificate 1_www.kihsu.me_bundle.crt; #填写你的ssl证书文件 ssl_certificate_key 2_www.kihsu.me.key; #填写你的ssl证书文件 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; server_name www.kihsu.me kihsu.me; #填写你的站点名称 index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/www.kihsu.me; #填写你的站点目录 include none.conf; #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log off; } server { listen 80; #listen [::]:80; server_name www.kihsu.me kihsu.me; rewrite ^(.*) https://$host$1 permanent; #全站加密,跳转http }使用全站加密,http自动跳转https
对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。 在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre) 在http的server里增加rewrite ^(.*) https://$host$1 permanent;
这样就可以实现80进来的请求,重定向为https了。修改完配置文件后,重启一下nginx就可以访问了。/etc/init.d/nginx restart
虽然有了整站的重定向,但我们不妨还是将 WordPress 本身自带的功能打开
找到网站根目录,修改文件 config.php,直接在这个文件的末尾另起一行,追加两行代码:
/* 强制后台和登录使用 SSL */
define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);
最主要的可能就是图片的问题了,你在上传到空间的附件都被 WordPress 标记为了绝对链接,而且全都妥妥的写入了 “http://”。一般来讲,是需要用数据库替换的,不过这种方法有点小危险,我这里给你推荐另外一个不错的选择:使用代码让 WordPress 在加载附件之前将链接替换就好了!——毕竟,只是协议的问题,跟路径没有半毛钱的关系~
(我希望你使用了 WordPress 的子主题功能……)
找到当前主题下的 function.php 文件,编辑之,在里边代码的末尾追加如下代码:
1
2
3
4
5
6
7
8
/* 替换图片链接为 https */
function my_content_manipulator($content){
if( is_ssl() ){
$content = str_replace(‘http://www.logcg.com/wp-content/uploads‘, ‘https://www.logcg.com/wp-content/uploads‘, $content);
}
return $content;
}
add_filter(‘the_content’, ‘my_content_manipulator’);
另外,除了这个大头意外,你还需要关心站内的各种内链:
修改“菜单”当中的所有“自定义链接”为相对路径;
修改“设置”→“常规”里的“站点地址”和“WordPress 地址”为 HTTPS;
修改其他自己手贱写入的绝对链接地址……