阿里云虚拟主机部署https(SSL)记录

部署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如果被阿里坑了的话,就不值得了。

发表评论

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