爲Github page綁定自定義域名並實現https訪問

歡迎參觀我的網站–>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證書也由其提供。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章