利用阿里云CDN部署https

WordPress

利用阿里云CDN部署https
一直用的联通宽带,最近发现无论什么网站总是会在右下角弹出广告,试过改 DNS 也没用, 是联通的线路劫持。它们在 http 响应的 body 直接插入,无论是 PC 还是移动端访问都会中招,类似于用 4G 在上网的时候,联通总会在右下角浮动一个小球为你推广流量包。PC 端还可以通过修改 hosts 表或者浏览器去广告扩展修改,用手机的时候简直不能忍了。而没事在浏览我的网站时,总会加载非常非常慢,原来也是广告在作怪,没办法,只能想办法改成 https 了,之前在 ECS 上曾经用过一段时间,后来服务器 down 了后就一直没再管,内容也丢了好多。

一、申请 SSL 证书

免费云盾证书服务申请地址:申请地址
最初的时候是在 startssl 申请的证书,现在既然阿里云也推出了免费版的,不如直接申请,部署还简单些。
具体申请的步骤很简单,支付成功后配置一下域名的 TXT,大概 5 分钟不到就成功了。

二、部署 CDN

非常遗憾的是阿里云的虚拟主机并不可以支持 https 的,但是好在其 CDN 或百度云加速等都是可以支持的。
在阿里云 CDN 中,增加 Https 配置
利用阿里云CDN部署https
配置起来也很简单,直接选择生成的证书就可以了,点击确认后,你的网站就可以通过 https 访问了。

三、修改 wp-config

由于是 CDN 采用 https 方式,那么就一定注意不要在后台设置中将主页和站点改成 https 的,因为这个站点其实是 http 的,如果配置成 https,那么当访问 https 的时候,会先访问 CDN,而 CDN 会回源,也就是会去找 http 的站点,这时回源站点又被设置为了 https,那么又会被重定向到 CDN,这样就出现了访问 CDN 的无限重定向,导致网页无法打开,或者某些文件无法加载的问题。
通过 CDN 部署的 Https 其实真正回源的是 http 的网站,所以使用 CDN 部署的 https 必须将 wordpress 的后台主页设置为 http。
设置 https 访问要通过修改 wp-config.php 文件实现,添加如下代码即可:

//=== 将用户界面与主页相关的 http 链接替换为 https,后台不用更改主页地址 ===//
define('WP_HOME', '//'.$_SERVER['HTTP_HOST']);
define('WP_SITEURL', '//'.$_SERVER['HTTP_HOST']);
//=== 设置 https 为开启 ===//
$_SERVER['HTTPS'] = 'ON';

保存后就可以通过 https 访问了。

四、修改 function.php

当站点部署为 https 后,原来的文章中很多地方还是引用的 http 的链接,其实是没有影响的,但是左上角就没有绿锁图标了。
如果你的站点都是同一域名下,即没有采用动静分离的话,那么直接在 function.php 中添加以下代码即可:

//=== 替换内容中 http 链接为 https ===//
function content_https($content){
 if( is_ssl() ){
 $content = str_replace('http://youfencun.com', '//xuanru.xin', $content);
 $content = str_replace('http://cdn.youfencun.com', '//cdn.youfencun.com', $content);//替换二级域名
 }
 return $content;
}
add_filter('the_content', 'my_content_manipulator');

五、更改 CDN 为 https

由于本站静态文件全部使用七牛 cdn,那么还得将之前 http://cdn.youfencun.com 更换成 https 的,但是这样的话,//cdn.youfencun.com 是不能访问的。没办法了,为了完美,只好再从阿里去申请了一个 cdn.youfencun.com 的 SSL 证书,同时将证书上传至七牛中,升级七牛加速域名为 https 的。
同样的,由于图片全部上传至 cdn.youfencun.com,那么在设置-多媒体中,也要将目录更新成为 Htts 的。

六、收工

至此,期待已久的全站小绿锁终于出现了:
利用阿里云CDN部署https

© 声明:本站原创文章采用BY-NC-SA创作共用协议,转载时请标明本文地址;非原创(转载)文章版权归原作者所有。

RECENT POSTS

Stay Hungry. Stay Foolish.

数据库查询次数:11次,页面生成时间:0.030秒。