Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

[BLOG] Hugo+Github 綁定domain + SSL/https

Posted on

約莫3.4天前,我穩定了我新架的hugo 網站,把一些bugs修好後

終於可以慢慢邁向下一階段的目標

去年12月半,我決定動手架一個屬於自己的網站

以往都是想用wordpress.org 架在主機上,但還是有些受限於wordpress

於是我把想法移駕到了hugo + github

某天,上網查查我新的部落格在Google的SEO是如何呈現

結果每篇文章的Title 都掛上 “- Git 指令”

我來來回回煩惱後來問同事後,得到的解答是買一個自己的domain

雖然知道遲早都會需要買,但沒想到現在就要買

 

目前我架站的方式是:

Hugo 架設在Github 上,於Godaddy買一個Domain+SSL指向我的網站

 

接下來應該會邊陸續添增一些新的功能,寫文章, 慢慢提升SEO

本文章教學:

  • 如何把購買的SSL 與 domain 結合
  • 如何把新買的domain指向Github
  • 一些注意事項

於Godaddy 購買domain

Godaddy 網站 有許多domain, 你可以直接去查看想要的domain,順便看看這些domain的延伸含義

這個部分其實蠻簡單的

將想要的domain查詢後 >> 加入購物車 >> 點取右上方購物車圖示 >>
填繳費表單 >> 勾選要不要額外的服務 >> 優惠碼 >> 結帳

特別提一下在購物車時,有個網域隱私保護, 其實只是讓你的domain 能不能在 Whois365 中被查找,沒有網站說的什麼資訊看光光這麼可怕

但我還是被嚇唬到,然後購買了,好冤XD

 

查看了一下SSL好像是額外買的,沒在這可以選

 

記得去領取優惠碼,據說可以打折(但我就算加了優惠碼也沒有打折氣噗噗)

 

 

買SSL Certification

我也是在Godaddy SSL 購買SSL

SSL 就是把你的網站從Http 變為Https

可惡的是購買SSL 比購買網域貴好多!!

 

把工具買好惹,就來裝吧


裝SSL Certification 於 你的domain

Godaddy的台灣版後台,我當初也是摸的翻白眼,不太好用,索性…… 用好了qq

 

如果是單購買 Domain,然後將購買的SSL裝上去的話

在Godaddy 登入你的帳號

 

前往後台左上方的SSL 憑證

螢幕快照 2019-01-19 下午6.34.32

你會看到一條剛購買熱騰騰的SSL 憑證,尚未設定

 

進入設定,會需要你輸入欲綁入的網址

(請原諒我沒有圖)

基本上會有左右兩塊,左邊是輸入你想認證SSL的domain網址,會產生密鑰,再將其中一個密鑰貼到右邊認證

 

輸入你想認證的domian,會產生兩個檔案

假設我在godaddy買的domain是: mina.io

就直接輸入 mina.io, 不用加前面的http/之類, 端看剛才於Godaddy買的domain是什麼就填什麼

會產生兩個檔案,分別是:

generated-csr
generated-private-key

我有下載下來保存好

接下來,我記得是將產生的generated-csr 貼到右方需要貼csr做認證的地方

 

在貼的部分下方,會再次詢問你是不是要認證該domain?

確認後就送出吧

 

以下兩個比較複雜,促使我發出這篇文章XD

把SSL+ Domain都搞定後,就來做連結了


將Domain設定指向Github

打開Goddady的後台後,前往網域,打開三個點 ··· 進入DNS管理

接下來你會需要新增 在 紀錄

分別是 A 紀錄, CNAME

  新增A 首先你要找到你的Github 的A

參考Github的網站 , 可以取得兩個指令來找到Github的A

 $ dig [YOUR-USERNAME].github.io +noall +answer

將這段指令貼上你的Terminal來查找你github網站的A

[YOUR-USERNAME].github.io < 改為[你的github帳號].github.io

 

*注意:有幾個A,在你的Domain DNS管理就要登幾個A, 範例只有1個

[YOUR-USERNAME].github.io     3600    IN A     199.27.XX.XXX
[YOUR-USERNAME].github.io     3600    IN A     199.27.XX.XXX
[YOUR-USERNAME].github.io     3600    IN A     199.27.XX.XXX
[YOUR-USERNAME].github.io     3600    IN A     199.27.XX.XXX

有四筆,就要登入四筆

 

接著回到Godaddy的管裡DNS後台,「紀錄」右下方「加入」

新增這四筆

螢幕快照 2019-01-19 下午6.59.57
類型 : A

主機: @

指向: port號

TTL 得符合上面的3600,也就是一小時 (看你Dig多少就填多少~)

 

新增CNAME

一樣管理DNS,```紀錄```右下方```加入``` 螢幕快照 2019-01-19 下午7.03.01

 

驗證

稍等些許時間後,用Github提供的另外一個指令做檢查 ``` $ dig [your-domain] +noall +answer ``` 貼上Terminal後,得和剛剛的指令 結果是一樣的 (記得是填你買的domain)

將Github設定指向Domain

在你的Github 前往 你放網站的repository

[YOUR-USERNAME].github.io

 

進settings 往下滑可以看到custom domain

把你的domain 貼到custom domain後按 save

 

這時候Github 會在你的repository下新增一個你看不到的CNAME 檔案

這邊我吃好多悶虧qq

如果你回到hugo, 利用hugo重新生public 強制推上Github

你要回到settings 重新加 custom domain

 

如果刪掉repository 重新創還是404或者沒畫面,無論做什麼事都404/沒畫面,可能需要清除Cookie (我是這樣才重新連回我的Github.io)

 

若成功把domain 與github連上,你會你的部落格內容,但css/樣式/主題 會跑掉

這是因為連到新的domain了,沒有在config.toml更新

 

接著回到你的Hugo, 把Config.toml檔

更改baseURL

baseURL = "https://your-domain"

hugo 一次 產生public 推上 你的repository

*要注意一下如果強制推上 “git push -f” 要再回去settings 新增custom domain 才會產生CNAME檔案,才能接你的domain

 

如果覺得每次 hugo 生成public 強制推上,都會刪掉原先的CNAME檔案的話

 

就在你的hugo web資料夾的根部 (就是config.toml 那層), 新增一個CNAME 檔案(不用副檔名)

把你的domain 直接寫在CNAME檔裡,儲存,之後每次下 hugo 生成public 都會自動生成CNAME囉!

CNAME
your-domain

*只需要在第一行寫上你的domain, 不用打http/https 之類的

 

如果還是不知道要新增什麼,那就在settings 新增custom domain後,把repository git pull下來,會看到新的一個CNAME檔案

 

那教學就到這囉,若有什麼問題可以來詢問我唷!