在网上看到有同志说阿里云的虚拟主机不能使用https,其实是可以使用的。方法也很简单,所有操作都可以在阿里云的管理控制台实现。步骤分为:获取https证书,开启cdn加速并绑定域名,域名添加cname解析,坐等成功。下面详细解释。

注:本文实现方法建立在域名、虚拟主机都是在阿里云购买的前提下。

1.获取https证书

打开阿里云管理控制台,找到证书服务,然后购买证书,现在只有赛门铁克有免费的证书了,就买这个,然后提交订单。

付款完成后,到我的订单里,可以看到刚刚买的服务,点击【信息补全】按钮,将你的网站地址输入,因为只能支持一个所以就随便你输入带www的或者不带www的。如果说你的域名是在阿里云购买的就不用验证域名所有权了,如果不是还有验证域名所有权,这个比较繁琐,跟着步骤来就好,在这里就不赘述了。

证书申请后是需要审核的,一般很快半小时就好。审核通过后是这样的。

2.配置https证书

到阿里云管理控制台【cdn】的【cdn域名列表中】,添加一个新的域名,选择图片小文件加速,类型ip,然后将阿里云虚拟主机的ip输入。端口一定选择80,不要选择443

填写好后,依次打开:cdn域名列表–选择你添加的域名,点击右边的管理–开启https安全加速–选择证书里有你已经申请到的证书–然后选择http -> https

3.域名解析

将你添加的域名详细信息里的 cname绑定内容拷贝,到域名解析处,添加一个cname解析,主机记录www,记录值就是你刚刚复制的内容。如果是虚拟主机,需要将带有www的a解析修改为cname解析,同时记录值修改为刚刚复制的内容。这样就差不多可以了,接下来要做的就是等待和刷新网站。一般十分钟就可以看到。输入域名时,原来http变成了https。

最后一步是修改站点的代码,前面说过,虽然用户通过https访问cdn服务器,但cdn服务器到源站是通过http访问的,(以wordpress为例)这样的话,呈现在最终用户的页面中里,链接的地址还是显示http开头的,比如:
http://www.bensblog.cn/about 我们需要呈现给用户的是https://www.bensblog.cn/about 这种的url, 在wordpress也很简单,它是有一套专门的url函数,可以做一些url控制,比如rewrite等,这也是不要去硬编码url的原因, 跟踪代码可以发现,它是通过 $_server[‘https’] 服务器变量判断当前环境是否为https访问,我们可以这样骗过它,在wp-config.php文件开头写入以下内容:

define(‘wp_home’, ‘https://’.$_server[‘http_host’]);

define(‘wp_siteurl’, ‘https://’.$_server[‘http_host’]);

$_server[‘https’] = ‘on’;

这样就大功告成了。

发表评论

后才能评论