GitHub page是什么?
我只是简短讲一讲自己的理解,更详细的还请自行搜索,如果错误还请指出。
GitHub pages 是一个能存放静态资源的服务器。你可以把它当做apache服务器使用。同时支持使用自定义域名解析,而且也支持HTTPS加密访问。
但是如果用上了CDN服务器,它这个HTTPS加密就无法使用了,具体请看图:
为什么不能使用Https访问?
上面试验过了Https访问浏览器会报错“不安全”,原因是因为该证书它是由CDN服务器提供给CDN域名的。当我们使用自己的域名去访问https的时候,当然会报错。
如何将解决?
我使用的是腾讯云的CDN,有免费流量,我是用不完的。同时腾讯云还提供免费的SSL证书,也就是HTTPS证书使用。另外我将自己的域名DNS服务器设置为dnspod,也就是腾讯云的dns解析,这样后面设置的时候也会方便不少,同时dnspod口碑也不错。
2019年12月19日10:41:15更新:
现在需要做的是:
- 腾讯云申请证书
- 给CDN安装上申请的证书
- 将自己的域名通过CNAME指向腾讯云提供的域名-参考下面的《设置CDN服务》标题的步骤6
- 测试访问
其实,我已经探索到了更快更方便的方法:使用coding的page,因为coding是腾讯的产品,服务器都在香港,比GitHub速度要快,另外coding团队/企业版有CLI功能,能实现自动编译,所以hexo写文章后只需要push而无需在deploy了。至于速度你可以尝试访问我的博客:blog.gobyte.cn体验一下,而且我没有启用CDN
建议读到这里的朋友,可以考虑把博客切换到国内的git平台吧,毕竟上面的人不希望我们再继续使用国外的服务了(具体参考GitHub的访问速度),识时务者为俊杰。
1. 创建证书
- 打开腾讯云-云产品-SSL证书-申请免费证书-亚洲诚信(写稿时是亚洲诚信提供的SSL证书)-确定
- 通用名称;输入需要加证书的域名,例如我需要给”test.gobyte.cn“加上证书,那么在”通用名称“里输入”test.gobyte.cn“即可
- 申请邮箱;自己的邮箱,我是填QQ邮箱,因为电脑每次都会登陆QQ
- 证书备注名;自己随便写
- 私钥密码;我嫌麻烦,没有设置
- 所属项目;默认项目
最后设置如图:
2. 域名验证
域名验证一共有三种方式,如果你的DNS解析服务器是腾讯云的,那么可以使用第一种自动验证。
- 自动DNS验证;原理是它自动帮你创建一条TXT解析,来进行验证。但是我试过,自动验证需要耗费十几分钟甚至更久才能验证通过。而且证书创建后一小时内不可删除,所以不建议使用。
- 手动DNS验证;会提供一个二级域名和一串字符串,让你去dns解析里添加,建议使用
- 文件验证;在你的网站里创建一个文件,文件内同样是指定的一串随机的字符串,网站如果变动了验证会失效,不建议
3. 添加DNS解析完成验证
进入你的域名解析管理
添加记录;主机记录如图:
_dnsauth.test
;记录类型:TXT
;记录值:201906111036051a20pp0b9x741e6lkn3xa302034gai8q61314oiyu4zogq8r1x
;最终效果如下图:回到证书详情页面,点击刷新按钮,查看域名解析是否生效
如果显示这样,说明已经成功了,等待服务商给你生成SSL证书即可。
到这里证书这块已经搞定,下一步是解决CDN设置的问题。
设置CDN服务
进入CDN;路径:云产品-CDN-添加域名
配置见图。域名是你要加速的域名。源站是指你网站的服务器ip。我这里是使用的GitHub pages,所以使用了这4个ip。如果你不知道自己的ip,你可以去的空间商查询。另外如果你想使用类似GitHub的服务器,可以使用
ping www.xxxx.com
命令查询。我是使用站长工具批量ping命令查询的。缓存过期配置,根据自己需要酌情设置,因为是写教程,我这里就默认了。说个尝试,如果是动态的链接是不应该缓存的,所以过期时间应该是0秒。
进入高级配置,设置HTTPS证书。按图下图设置
设置完成后,点击提交,进入CDN的域名管理列表。
稍等片刻,CDN会给你提供一个域名,该域名是你把要加速的域名,通过CNAME类型解析的。如下图:
设置域名解析到CDN上。进入域名解析,添加解析。如:我需要用的域名为
test.gobyte.cn
,那么添加的主机名应该是test
,解析类型为CNAME
,记录值为test.gobyte.cn.cdn.dnsv1.com
。如下图:浏览器输入你的域名,按下F12打开开发者工具,点击
network
,如我的域名是http://test.gobyte.cn,打开看看能不能访问。顺带看一下head的主机ip是多少,如图:明显看出,这个IP不是上面自己设置的源IP,通过IP查询得知,它是湖南岳阳的IP,说明它就是CDN服务器的IP了。
我们再测试下HTTPShttps://test.gobyte.cn,我这边已经成功了,如下图。
鼠标单击一下地址栏的小锁,点击证书
从证书中可以看到,是授予我的域名的。颁发者是:TrustAsia,而TrustAsia就是亚洲诚信公司,所以说明我们的HTTPS已经配置成功了!
但是别着急,还有最后重要的一步设置没有完成。我们需要设置为强制跳转HTTPS访问,因为目前http还是可以访问的。