又拍云CDN自定义域名加速及HTTPS支持

之前网站一直使用的是七牛的CDN服务,使用体验一直不错,虽然提供的是免费的服务但是依旧十分可靠。在网站实现全站HTTPS之后,七牛的问题就暴露了出来:七牛支持自定义二级域名作为CDN域名,但是不支持HTTPS下的二级域名自定义。这样,我的网站源码里可能就充斥着,例如https://o37cfn45w.qnssl.com,这样丑陋的链接。这时,我发现了另一家CDN提供商,又拍云。在它的介绍里是这样描述的:支持上传自定义的SSL证书,支持自定义CDN域名。这不正是我需要的么,于是我注册并开始了试用。

这里要吐槽一下,又拍云的文档就是一坨翔。看第一遍啥都没看明白,看完第二遍完全也不知道该怎么做。纯属是把CDN和SSL的一些概念性的东西贴上了,有种给你一本字典就让你写书的蛋疼感。好在这方面我还算有经验,大概摸索着花了不到一小时还是弄明白了。下面是详细的部署过程:

准备工作

  1. 域名已经备案(国内的服务基本这个跑不了)。
  2. SSL证书。如果需要支持HTTPS的CDN服务的话,需要自备证书上传。证书需要含有你用来作为CDN的二级域名(例如我的证书就包含三个域名:zivers.com www.zivers.com static.zivers.com)。如果使用Let’s Encrypt证书的话,下面有具体方法。
  3. 又拍云帐号。最好往里头放点钱备用,我先充了10块。

创建服务

登录又拍云帐号,选择服务标签,点击创建服务。

20160525151802

这里需要输入一个服务名称。随便写不重复的就好。比如写的是www-zivers-com,之后就会给个www-zivers-com.b0.upaiyun.com的三级域名给你。点击下一步。

20160525152930

这一步会涉及到一些专业名词,包括HTTP头,回源,host等。如果只是单纯的CDN而已并不需要理会太多。这里大概说下这么选的理由:

  • 自主源站:就是资源从自己的主站上获取。如果选后者则需要将资源上传到又拍云的空间里
  • 加速域名:填入给CDN用的二级域名,比如这里的static.zivers.com
  • 回源Host:选择域名跟随是取到的是来自域名的Host头部信息
  • 回源方式:我已经全站HTTPS自然是选HTTPS方式。没有HTTPS支持的话选第一个。都有选第三个,选第三个的话注意线路配置里头的端口号要对应
  • 回源线路:根据需求选。回源地址写自己网站就行,端口号如果是HTTPS就写443,HTTP就写80

点击下一步。

添加管理员,没啥说的。然后点击下一步就完成了。

这时候系统会自动分配给你一个域名,也就是上面说的www-zivers-com.b0.upaiyun.com。由于我配置的是HTTPS的CDN,而现在并没有为这个三级域名配置HTTPS,所以现在直接访问这个域名是无法获取到内容的。

SSL证书配置

现在去配置HTTPS,点击工具箱,选择SSL服务

20160525153519

这里有个“又拍云默认HTTPS证书”,这个证书就是用来给又拍云三级域名提供HTTPS加持的证书。点击管理,然后勾选开启HTTPS访问

20160525153702

保存之后,这个三级域名就可以直接访问了。如果不想绑定自主域名,到这一步就算结束了,只需要在网站上将静态内容指向这个三级域名即可。

如果需要绑定自己的二级域名(static.zivers.com),那么继续下面的步骤。

绑定域名

首先进入服务页面,找到刚才创建的服务(www-zivers-com),点击功能配置。在这个页面可以看到刚才自动生成的又拍云三级域名和我们自己添加的二级域名。

20160525153157

这里有段提示:“绑定域名后,请在域名服务商处将其 CNAME 配置为:www-zivers-com.b0.aicdn.com”

那么就去DNS解析商那加上这条cname记录。等待生效后,访问https://static.zivers.com,发现还是无法访问。原因和之前的又拍云三级域名无法访问一样,还没有添加这个域名的SSL证书。这个证书是需要由我们自己上传的。和之前一样,到工具箱的SSL服务页面,点击“添加SSL证书”。

20160525154648

把证书和私钥都填上保存,之后这个页面就多了一个我们自己的证书。找到这个证书,点击“管理”,将我们的自主域名(static.zivers.com)勾选就行了

20160525154903

至此,又拍云的自主域名CDN和HTTPS支持就添加完毕了。访问https://static.zivers.com也能够获取到正确的内容。

Let’s Encrypt配置

在之前的文章中有过对Let’s Encrypt的说明和教程,这里就不多说了。之前我的证书中只包含了两个域名zivers.com和www.zivers.com,并没有static.zivers.com。但是在CDN的HTTPS配置中需要用到这个域名,所以这里需要进行配置。首先执行下面的命令:

然后在简单的交互框中输入我的三个域名,然后继续。这里报错了

原因很明显,我将static.zivers.com这个域名用cname解析到了又拍云的三级域名,并不是我的服务器,这样认证当然是失败的。所以,我去DNS解析商处先将static.zivers.com暂时用A解析解析到服务器IP,之后生成证书。最后再解析回三级域名即可。

效果

站点的静态内容已经全部使用static.zivers.com这个域名访问了:

20160525160804

暂无评论

发表评论

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