昨天正式启用了网站的HTTPS访问,目前看基本没啥太大的问题,所以接下来把具体的过程整理下。

1、生成SSL证书并部署

我现在用的还是虚拟主机是使用的DirectAdmin面板,它支持一键申请并部署Let's Encrypt证书,这是一个免费的证书,而且DA还支持自动续期,相对来说还是非常方便的。后续如果迁移到另外支持DA的虚拟主机商那里,也可以通过DA面板上的备份再还原的方式保证证书也能顺利迁移。生成证书的界面:

2、修改.htaccess文件

这里主要是最后的三行,强制让http形式的访问跳转到https:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# BEGIN WordPress
# 在`BEGIN WordPress`与`END WordPress`之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

3、WordPress后台管理设置

后台设置-常规里面的“WordPress地址(URL)”和“https://kodango.com”。

然后是后台设置-用户-我的个人资料里面的,站点地址也类似。

4、修改wp-config.php文件

在 wp-config.php 文件中增加以下配置,强制用HTTPS登陆后台管理界面:

/** 强制用HTTPS登陆后台 **/
define('FORCE_SSL_ADMIN', true);

5、修改robots.txt文件(如有)

在文件中修改站点地图(sitemap)的地址为https:


# Robots.txt v0.3 for kodango.com modified at 2017.4.27
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /feed/
Disallow: /trackback/
Sitemap: https://kodango.com/sitemap.xml

6、修改所有数据库数据

将里面所有相关的地址都统一改成https,包括网站域名地址、图传地址,为了方便可以安装“Better Search Replace”插件。

举个例子,将数据库里面匹配“http://kodango.com”的内容都替换为"https://kodango.com”:

第一次运行的时候勾选“dry run”,只检查不执行update语句,确认没问题之后再取消勾选执行一次。

7、检查网站访问是否正常

上面的所有操作都做完之后,就检查下网站访问是否正常,包括使用http的方式会不会强制跳转,图片、网站样式显示是否OK,然后打开Chrome的开发者工具检查下console下有没有异常的报错。我一直使用阿里云的OSS作为静态文件托管的,这次改为HTTPS后发现字体文件无法加载了,显示跨域访问错误,后来在OSS的控制台增加了一条跨域访问的规则就解决了。如果你的图片托管在其他类似CDN的服务上,也要特别检查下有没有类似防盗链的设置,都要统一修改下。

最后如果有使用Google Search Console的情况,还需要照着它的文档在后台增加一条https的网站资源记录。

转载请注明转自: 团子的小窝 , 本文固定链接: 博客启用HTTPS访问