歡迎參觀我的網站–>Yuci’s Blog。
實現目標
- 獲取自定義域名
yucichueng.me
; - 將上述域名(及www域名)解析到
yucichueng.github.io
IP地址; - 將域名解析服務託管於CloudFlare;
- 獲取SSL證書,使網站可以通過https訪問。
獲取自定義域名
我購買的域名是yucicheung.me
。
一級域名me
在GoDaddy網站進行購買。心儀的域名可以在網站whois查看是否被註冊,未被註冊可在相應域名商處購買。
Tips:如果是在Godaddy
購買的域名,建議購買隱私服務(不泄露個人信息),不是很便宜,所以建議可以直接從國內域名商處購買,贈送隱私保護服務。
域名解析到Github page
購買域名後,在對應域名供應商處一般會提供域名解析服務,我們需要對解析服務進行配置。
對我來說,就要在Godaddy
域名解析服務處進行配置。
修改域名服務商解析記錄
- 點擊主頁右上角自己的賬戶名–>點擊manage my domains–>在My Domains選擇Manage DNS;
- 添加
CNAME
和A
解析記錄,使www
網址和@
(即本身)都指向自己的github page;
按以下表格分別添加A和CNAME兩條解析記錄:
類型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就可以視爲HTTP和SSL/TLS協議的組合。
HTTPS能做到良好的保密性(防嗅探),真實性(防篡改),完整性(防域名劫持和域名欺騙)。
SSL證書
SSL是TLS的前身,但TLS通常也被標誌爲SSL。
SSL/TLS協議的基本思路是採用公鑰加密法,也就是說,客戶端先向服務器端索要公鑰,然後用公鑰加密信息(會話祕鑰),服務器收到密文後,用自己的私鑰解密。
這個公鑰就放在數字證書中。只要證書是可信的,公鑰就是可信的。
申請SSL證書
SSL證書由你的NS(Name Server,域名服務商)頒發,由於GoDaddy
的SSL證書超級貴,所以我們可以遷移到免費提供SSL的NS處,比如國內的DNSpod(國內都需要備案),還有國外的Netlify和Cloudflare,從速度和操作性考慮,本人選擇了Cloudflare
。
1. 到Cloudflare官網註冊;
2. 根據指引點擊Add Site,添加自定義域名yucicheung.me,會自動開始掃描DNS解析記錄;
3. 掃描完成後,Cloudflare會選擇給我們分配兩個NS地址,將這兩個地址替換GoDaddy上的原NS地址,等待生效;
4. 在Cloudflare上檢查自己網站的狀態,顯示爲Active
時表示NS更改成功;
- 在Cloudflare將自己網站的SSL狀態改變爲
Full
狀態,等待Status變爲Active Certificate
,通常生效需要十幾分鍾。
6. 再訪問自定義域名時,就可以看見是https
傳輸,網址前也有一把綠色小鎖,可以看到這個證書其實是Cloudflare的證書。
CDN:關於訪問速度
如果因爲NS在國外,擔心訪問速度,可以稍微放心。
Cloudflare本身提供CDN
(content delivery network,內容分發網絡)服務,是指一種通過互聯網互相連接的電腦網絡系統,利用最靠近每位用戶的服務器,就近獲取網絡內容傳遞給用戶。
免費服務一般只能加速css、js的引用,而對於html和圖片的加速通常是付費服務。
實驗過之後,確實是圖片加載會稍慢一些,但是整體速度是可以接受的,如果實在介意速度,建議通過國內NS解析網址。
另:發現Cloudflare已經和baidu合作針對企業級用戶啓動加速服務,一個節點服務海外訪問者,另一個服務國內訪問者。
總結
- 最後實現的整個系統可以這麼理解:就相當於由github提供主機(相當於寄存在github的服務器),自己購買域名,域名指向服務器文件進行展示。
- 原本的github主頁,域名解析由GitHub負責,SSL證書由github.com提供,所以可以安全訪問。現在的域名解析由Cloudflare服務,SSL證書也由其提供。