部署https是为了安全?现在https的大势所趋?更多的我都不太了解。最重要的是现在使用4G的网络访问自己的网站,本来我的网站并没有广告,但是偶尔会在侧边固定位置有中奖信息的广告。非常令人恶心,这叫劫持?还是什么鬼?针对这个问题我细心观察了一段时间,发现https的网站从来不会出现此广告。这是运营商劫持吗?除了运营商难道还有谁?
所以可以使用https就尽量使用吧,好像部署好了之后发现很多坑!
要使用一段时间才能发现这阿里云CDN到底有多坑吧,反正现在就购买了CDN HTTPS请求数资源包-10000000次、CDN流量包-100G(国内版)
下面是部署的过程记录
一、申请免费的SSL证书
我申请的是单域名免费证书
申请免费的SSL证书很快审核完成哟!阿里云的效率还是很不错的!
二、开通设置阿里云CDN实现HTTP→HTTPS
由于使用的是阿里云最低端的云虚拟主机,必须开通阿里云CDN来实现HTTP→HTTPS,有点被坑的感觉😔
在产品与服务里找到CDN点击进入。首次进入需要开通CDN等一些操作…
然后点击添加域名
添加一个与申请的单域名免费证书对应的域名即可。详细参数如下图,需要注意端口必须80(据说云虚拟主机不支持443端口)
添加好域名之后,有了CNAME,需要在域名解释里修改A记录为CNAME解释。
当初网上找的教程,加速域名我添加了两个。即:www.sg*fz.cn与sg*fz.cn 。但是修改两个A记录为CNAME解释的时候,主机记录www记录值sg*fz.cn这个正常,主机记录@记录值sg*fz.cn这个与MX记录冲突,无法保存修改,所以没有成功修改这个@记录值sg*fz.cn保持原样不变。后来使用虚拟主机的301重定向。
虚拟主机里面的301重定向功能貌似只有主页有作用,除了主页之外任何页面都无效。也就是输入网址 http://sg*fz.cn
可以重定向到https://www.sg*fz.cn
。如果输入网址http://sg*fz.cn/blog
就无效了,网页无法打开或出现打开非常慢,页面错乱。
我需要的是整站301重定向,看来是需要修改.htaccess文件达到目的了。
WordPress站点默认的.htaccess文件规则如下
# BEGIN 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
修改好的全站301重定向规则如下
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^sg*fz.cn$ [NC] RewriteRule ^(.*)$ https://www.sg*fz.cn/$1 [L,R=301] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
其实就是增加了两条规则。
RewriteCond %{HTTP_HOST} ^sg*fz.cn$ [NC] RewriteRule ^(.*)$ https://www.sg*fz.cn/$1 [L,R=301]
但是规则必须放在RewriteBase /
这行WordPress的规则的前面,我试过放在RewriteRule . /index.php [L]
这行规则之后,301重定向规则就无效了。这里需要注意的,没经验也没基础的我们,肯定会遇到很多坑的。
之后,点击配置
首先找到https设置,点击修改配置
https设置如下图,选择证书这里选择刚才注册的免费SSL证书。最后 强制跳转 HTTP→HTTPS
然后找到回源设置,回源host,点击修改配置
需要注意的:协议跟随回源,这里必须保持默认的未开启!不然网站无法访问(亲测,并不是马上不能访问,有延时。反正很多坑)
回源host配置如下图
三、配置WordPress
修改wp-config.php
找到
require_once(ABSPATH . 'wp-settings.php');
这行代码前面加上如下代码
/** HTTPS */ define('WP_HOME', 'https://'.$_SERVER['HTTP_HOST']); define('WP_SITEURL', 'https://'.$_SERVER['HTTP_HOST']); define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true); $_SERVER['HTTPS'] = 'ON';
修改数据库(由于我使用了buddypress,所以试过网上找的资料都行不通,只能修改数据库才能完美解决问题)
登录进入阿里云数据库,点击SQL窗口,分别执行如下命令:
//大概意思是替换WordPress发布的文章http为https update wp_posts set post_content = REPLACE(post_content,'http://sg*fz.cn','https://www.sg*fz.cn');
//大概是替换buddypress动态信息固定连接http为https update wp_bp_activity set primary_link = REPLACE(primary_link,'http://sg*fz.cn','https://www.sg*fz.cn');
//大概是替换buddypress动态信息内容连接http为https update wp_bp_activity set content = REPLACE(content,'http://sg*fz.cn','https://www.sg*fz.cn');
//大概是替换buddypress动态信息功能连接http为https update wp_bp_activity set action = REPLACE(action,'http://sg*fz.cn','https://www.sg*fz.cn');
至此算比较完美的完成了阿里云虚拟主机部署https(SSL)。
好像觉得这个阿里云CDN不知道怎么计算,怎么收费的。心里总是有点觉得,我这个人网站也没有什么搞头,为了弄一个https如果被阿里坑了的话,就不值得了。