为Github page绑定自定义域名并实现https访问

版权声明:如要转载,请在本帖的评论中声明,并且在转载后文章中保留原文链接。 https://blog.csdn.net/yucicheung/article/details/79560027

欢迎参观我的网站–>Yuci’s Blog

实现目标

  • 获取自定义域名yucichueng.me;
  • 将上述域名(及www域名)解析到yucichueng.github.ioIP地址;
  • 将域名解析服务托管于CloudFlare;
  • 获取SSL证书,使网站可以通过https访问。

获取自定义域名

我购买的域名是yucicheung.me
一级域名meGoDaddy网站进行购买。心仪的域名可以在网站whois查看是否被注册,未被注册可在相应域名商处购买。

Tips:如果是在Godaddy购买的域名,建议购买隐私服务(不泄露个人信息),不是很便宜,所以建议可以直接从国内域名商处购买,赠送隐私保护服务。

域名解析到Github page

购买域名后,在对应域名供应商处一般会提供域名解析服务,我们需要对解析服务进行配置。
对我来说,就要在Godaddy域名解析服务处进行配置。

修改域名服务商解析记录

  1. 点击主页右上角自己的账户名–>点击manage my domains–>在My Domains选择Manage DNS;
    manage_DNS
  2. 添加CNAMEA解析记录,使www网址和@(即本身)都指向自己的github page;
    按以下表格分别添加ACNAME两条解析记录:
类型type 主机host 指向points to TTL(Time To Live)
A @ github page的IP 地址 600
CNAME www github page的网址 600
A记录
用来指定域名的IPv4地址
如要将域名指向一个IP地址
添加A记录

CNAME
如要将域名指向另一域名
再由该域名提供ip
添加CNAME记录
www
解析后域名为www.yucicheung.me

@
解析主域名yucicheung.me

*
泛解析,匹配其他所有域名,*.yucicheung.me
对于A记录:
要指向IP地址

对于CNAME:
要指向一个域名

指地方dns缓存域名记录的时间,缓存失效后会再次获取

600:
建议采用600

60:
如果经常修改IP可用(修改可快速生效),长期使用略影响解析速度

3600:
如果IP极少变动(一年几次),可选择 3600,解析速度快

Tips:github page的IP地址可以通过以下命令获取:

ping yucicheung.github.io

添加github仓库的域名解析记录

1.按以下命令在自己的github仓库中添加CNAME文件,其中填入购买的域名。或者可以在仓库的settings中设置Custom Domain设置好自己的域名,github会自动添加CNAME文件。

$ touch CNAME
$ echo 'yucicheung.me'> CNAME 

2.稍等一下就可以通过购买域名yucicheung.me访问yucicheung.github.io了,但是这时只能通过http访问自定义域名而非https

通过HTTPS访问自定义域名

在完成上述操作以后,只能通过HTTP协议传输(明文传输),于是在通过自定义域名访问自己的github page时,发现浏览器提示该网址不安全,没有合格的安全证书,不能通过https(密文传输)访问。

HTTP与HTTPS

HTTP是明文传输协议,传输内容容易被嗅探和篡改。
HTTPS,即HTTP over SSL/TLS,是添加了一层SSL(Secure Sockets Layer,安全套接层),或者是TLS(Transport Layer Security,传输层安全协议),所以HTTPS就可以视为HTTPSSL/TLS协议的组合。
HTTPS能做到良好的保密性(防嗅探),真实性(防篡改),完整性(防域名劫持和域名欺骗)。

SSL证书

SSLTLS的前身,但TLS通常也被标志为SSL
SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息(会话秘钥),服务器收到密文后,用自己的私钥解密。
这个公钥就放在数字证书中。只要证书是可信的,公钥就是可信的。

申请SSL证书

SSL证书由你的NS(Name Server,域名服务商)颁发,由于GoDaddy的SSL证书超级贵,所以我们可以迁移到免费提供SSL的NS处,比如国内的DNSpod(国内都需要备案),还有国外的NetlifyCloudflare,从速度和操作性考虑,本人选择了Cloudflare
1. 到Cloudflare官网注册;
2. 根据指引点击Add Site,添加自定义域名yucicheung.me,会自动开始扫描DNS解析记录;
3. 扫描完成后,Cloudflare会选择给我们分配两个NS地址,将这两个地址替换GoDaddy上的原NS地址,等待生效;
change_ns
4. 在Cloudflare上检查自己网站的状态,显示为Active时表示NS更改成功;
active

  1. Cloudflare将自己网站的SSL状态改变为Full状态,等待Status变为Active Certificate,通常生效需要十几分钟。

full_ssl
6. 再访问自定义域名时,就可以看见是https传输,网址前也有一把绿色小锁,可以看到这个证书其实是Cloudflare的证书。

https
ssl

CDN:关于访问速度

如果因为NS在国外,担心访问速度,可以稍微放心。
Cloudflare本身提供CDN(content delivery network,内容分发网络)服务,是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,就近获取网络内容传递给用户。
免费服务一般只能加速css、js的引用,而对于html图片的加速通常是付费服务。
实验过之后,确实是图片加载会稍慢一些,但是整体速度是可以接受的,如果实在介意速度,建议通过国内NS解析网址
另:发现Cloudflare已经和baidu合作针对企业级用户启动加速服务,一个节点服务海外访问者,另一个服务国内访问者。

总结

  • 最后实现的整个系统可以这么理解:就相当于由github提供主机(相当于寄存在github的服务器),自己购买域名,域名指向服务器文件进行展示。
  • 原本的github主页,域名解析由GitHub负责,SSL证书由github.com提供,所以可以安全访问。现在的域名解析由Cloudflare服务,SSL证书也由其提供。

没有更多推荐了,返回首页