DirectAdmin面板下WordPress部署SSL证书实现全站HTTPS访问

前几天迁移完主机空间后,我又开始手痒痒了,于是折腾了一下,实现了向往已久的浏览器安全锁头图标效果,也即开启了全站HTTPS访问。

以下是我的基本操作记录,供有需要者借鉴参考。

1、安装SSL证书

篱落主机采用DirectAdmin面板,可以自行申请安装免费的SSL证书(貌似必须有独立IP才能安装,反正我买的是独立IP套餐)。

后台浏览至“站点管理-其他管理-SSL证书”,选择“自动申请免费证书 Let’s Encrypt”,按指引操作然后保存即可。

2、修改WordPress站点配置

到WP后台“设置-常规”页面,将以下两个字段内容均改为HTTPS开头即可。

  • WordPress地址
  • 站点地址

3、强制跳转HTTPS

完成前面的操作后,已经可以通过HTTPS直接访问站点了。

问题是,如果我通过HTTP也能正常浏览,貌似不完美哇?咋办?

那就强制跳转呗。

万能的Google告诉我,可以通过修改.htaccess文件来实现301强制跳转。

(注意:Apache和nginx的配置不一样,篱落主机默认使用Apache,所以以下给出的是Apache环境的示例)

去DirectAdmin后台的文件管理,网站根目录(public_html)下找到.htaccess文件。直接在线打开这个文件进行编辑,然后在其最顶部(# BEGIN WordPress字样之前)粘贴入以下内容并保存:

RewriteEngine On
RewriteCond %{HTTPS} !on [NC]
RewriteRule (.*) https://www.typemylife.com%{REQUEST_URI} [R=301,NC,L]

此设置是为了强制所有从HTTP过来的访问都跳到HTTPS。

4、修改数据库

用Chrome浏览器访问了几个页面,发现会提示“并非完全安全”。

咋回事?又是一番Google。。。

原来是这样子:旧版本网站上很多内容(如图片URL)都是HTTP协议的,需要设法修改为HTTPS。

有人推荐用插件来实现动态加载,不过看了下大家的反馈,这样做会拖慢网站加载速度,有不小的性能问题。

于是决定直接修改数据库吧,一劳永逸。

登录phpMyAdmin,选中本站的数据表名(注意先备份整个数据库),右侧面板选择SQL,输入以下内容并执行:

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.typemylife.com’,’https://www.typemylife.com’);

再刷新一下浏览器,会发现,全站页面顶部都能看到安全锁头图标啦。看来全站HTTPS也没那么复杂对吧。。。

发表评论

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