前言
世界上可以拿到免費憑證的地方很多,像是大家熟知的 Let’s Encrypt、ZeroSSL 都是。但大家知道其實 Google 自己也有自己的憑證機構嗎?
他叫做 Google Trust Services,你可以在許多 Google 服務又或是協作平台的地方看到由他產出的憑證。但是我們可以自己向他申請嗎?當然可以,而且是完全免費的。這篇文章就是紀錄下取得過程。
安裝 Google Cloud CLI
獲取的過程中,我們會與 Google Cloud 的 CLI 一直互動,因此我們要在電腦上安裝 Google Cloud CLI。你可以在 這個連結 找到安裝方法。
使用 Google Cloud CLI
安裝完之後,應該可以在你的桌面找到 Google Cloud SDK Shell。我們將他打開,並使用以下命令來初始化,他會要求你登入 Google 帳號。
gcloud init
接著我們新建一個專案,只建立專案是不用付錢的。而後面的 your-project-123
則是專案名稱,你可以改成你喜歡的。
gcloud projects create your-project-123
新建完之後,讓 Google Cloud CLI 知道,我們要選取這個專案。
gcloud config set project your-project-123
在這個專案啟用 Public CA API
gcloud services enable publicca.googleapis.com
請求一個 EAB 與 HMAC 密鑰
gcloud publicca external-account-keys create
他將會返回兩個字串 b64MacKey
與 KeyId
。記住他們,待會會用到。
使用 Certbot
我們要使用 ACME 客戶端來向 Google 發出要求。常見的 ACME 客戶端有 Certbot、acme.sh 等。這篇文章將會使用 Certbot。
至於 Certbot 的安裝方式,可以參考我 先前的文章。
接著,我們需要向 ACME 註冊帳號。將 email
的地方改成你的,eab-kid
就是先前獲得的 KeyId
,eab-hmac-key
則是 b64MacKey
。
certbot register \
--email "[email protected]" \
--no-eff-email \
--server "https://dv.acme-v02.api.pki.goog/directory" \
--eab-kid "EAB_KID" \
--eab-hmac-key "EAB_HMAC_KEY"
完成後,我們就可以開始要求憑證啦!將 domains
的地方改變成你要申請的網域。
certbot certonly \
--manual \
--preferred-challenges dns \
--server "https://dv.acme-v02.api.pki.goog/directory" \
--domains "your.domain.com"
他會要求你在 DNS 上新增一筆 TXT 紀錄。完成新增後,就回來按下 Enter 繼續驗證。
你的憑證申請完成啦,Certbot 也告訴你存放的路徑囉!去那就能找到了。
刪除專案
如果專案不需要再使用了,你可以透過以下命令來刪除這個專案。
gcloud projects delete your-project-123
結語
這就是獲取 Google 的 SSL 憑證過程啦!其實當初寫這篇的契機只是因為我覺得大家都使用 Let’s Encrypt 的憑證很不獨特,想要找一個由大公司所頒發的憑證。不過也有人說 Google 發出來的憑證相容性很好,這點我就不是很清楚了,大家可以自己嘗試看看!