wordpress 全站https化

wordpress 全站https化

铁乐与猫 2018年1月9日
系统环境:openSUSE Leap 42.3 /nginx1.13.1/php5/MariaDB10
wordpress版本: 4.9.1

需求:让火狐、谷歌浏览器之类访问我的wordpress博客不再显示不安全的访问而是显示绿色的可靠访问。
安全:防止被国内的宽带运营商在别人访问我的wordpress博客时加入一些弹窗广告,此外http的网站在搜索引擎中的rank也比较低。
跳转:使用http访问wordpress会被得到一个301的重写向跳转到https。

1)申请SSL证书

由于我的服务器是使用阿里云ECS的,所以这里我选择了在阿里云上面申请免费的SSL证书一年。
因为比较快捷方便,当然你也可以自行选择使用申请Let’s Encrypt颁发的SSL证书,
我另外的文章中有详述在windows系统中如何获取Let’s Encrypt颁发的SSL证书。
linux系统的话有空再详述。
在阿里云上申请是在控制台的安全(云盾)-CA证书服务中购买,会有免费一年的Symantec免费版 SSL选择,同理你也可以在百度云等云计算运营商中申请。
我选择在阿里云上面申请是因为我的域名也是在阿里云上面管理的,可以很方便通过ssl的申请审核和推送验证。

如上图,免费型DV SSL证书只能够一个明细子域名使用。比如我的wordpress博客使用的www.tielemao.com。

这里www就是一个子域名。
而不能直接使用通配符*.tielemao.com这样。
购买后对证书进行补全信息-提交审核-颁发证书-下载证书。

如上图,点击补全。

如上图,填写域名信息,我这里用bbs来做个例子,一般网站会是用www。下一步。

如上图,填写全个人信息,主要注意的是域名验证类型,如果你域名有使用阿里云的云解析的话,建议直接使用dns的方式验证并勾选下方的选项,便会自动验证。
如果点击文件的话则要麻烦一点,详细可以点击它旁边的问号去查看。
同时建议点选系统生成CSR,直接使用省去自己生成。所有都填好后,点击下一步。

最后一步,如上图,直接点击提交审核就是了。
如果你是用阿里云的云解析的话,审核的进度会很快,同时也不用自已再跑去域名解析那里添加一条用于验证的别名记录之类。
阿里云签发下来后,证书管理界面点击下载,会有很贴心的各种部署说明。看自已的博客搭建的环境来下载相对应的证书文件就是了。

2)下载和安装SSL证书

如上图,相应下载后,根据阿里云的说明文档进行部署就是了。这里不再累述。

3)http强制跳转https

由于我是使用nginx的,所以我这里在nginx的配置文件中加以下配置实现,注意的是这一段是要配置在server块且是侦听80端口的server块。
我是将80和443分别做了两个server块去实现的。
# Redirect non-https traffic to https
return 301 https://$server_name$request_uri;

至此,服务器nginx上的配置已完成,记得服务器的防火墙和阿里云的安全组上都要开放443端口,重启nginx便可生效。
接下来是对wordpress本身的设置https化。

4)wordpress的 常规设置中的 “WordPress 地址” 和 “站点地址” 变更为 https ;

如上图,常规选项中设置wordpress地址和站点地址为https。

5)文章内的图片等资源的链接变更为 https ;(重点)

可以通过安装Search Regex插件来批量更新历史文章里的图片或别的资源的链接。
安装完Search Regex插件启用后,在工具中能找到它,进入Search Regex界面,
source我们选择Post content,Serach pattern中填入http。
此时一点下方蓝色的Search按键就可以看到搜索出了270多条符合的。
再执行替换前先对数据库做好备份。然后就可以继续下面的操作:
Replace pattern 一栏中填入https,表示将上一栏的http替换成https。
这里可以先按Replace按钮来预览,确认无误后再按Replace & Save 来最终存入数据库形成修改。

6)如果你的wordpress还有启用了文章缓存的,比如WP SuperCache插件,就要去设置一下它”CDN” 页面中的 “Site URL” 和 “off-site URL” 确保生成出来的静态网页内是用https做资源链接的。

最终顺利的完成了wordpress全站https化,撒花!
end

发表评论

电子邮件地址不会被公开。 必填项已用*标注