Traefik 搭配 Docker 自動更新 Let’s Encrypt 憑證

之前寫過蠻多篇 Let’s Encrypt 的使用教學,但是這次要跟大家介紹一套非常好用的工具 Traefik 搭配自動化更新 Let’s Encrypt 憑證,為什麼會推薦 Traefik 呢,原因在於 Traefik 可以自動偵測 Docker 容器內的 Label 設定,並且套用設定在 Traefik 服務內,也就是只要修改服務的 docker-compose 內容,重新啟動,Traefik 就可以抓到新的設定。這點在其它工具像是 Nginx 或 Caddy 是無法做到的。底下我們來一步一步教大家如何設定啟用前後端服務。全部程式碼都放在 GitHub 上面了。

用 Caddy 申請 Let’s Encrypt Wildcard 憑證

2018 年 3 月 Let’s Encrypt 官方正式公告支援 Wildcard Certificate 憑證,有在玩多個 subdomain 有福了,未來只要申請一張 *.example.com 就全部通用啦,當然很高興 Caddy 也跟進了,在 v11.0 正式支援多種 DNS Provider,只要申請 DNS 提供商的 API Key 或 Secret 設定在啟動 Caddy 步驟內就可以了。底下用 Godaddy 舉例。

申請 Let’s Encrypt 免費憑證讓網站支援 HTTP2

寫這篇最主要推廣讓網站都支援 HTTPS 加密連線及 HTTP2 協定,對於網站為什麼要支援 HTTP2,可以直接參考 ihower 寫的說明文章,最近在玩 Facebook, Line, Telegram Bot 時,填寫 Webhook URL,都強制要填寫 https:// 開頭,所以更不能忽略 HTTPS 了。,去年底寫了一篇 Let’s Encrypt 開放申請免費 SSL 憑證 推廣 Let’s Encrypt 的貢獻,讓買不起憑證,又想玩看看 HTTP2 的開發者可以用很簡單的方式來安裝及自動更新憑證,而 gslin 大為了推廣 HTTPS 也做了一個網站教學,文章寫得相當清楚,支援 Apache 及 Nginx 設定。

Let’s Encrypt 將在 2018 年一月支援 Wildcard Certificates

Let’s Encrypt 宣布在 2018 年一月全面支援 Wildcard Certificates,目的就是讓全世界網站都支援 HTTPS 協定。自從 2015 年 12 月宣布免費支援申請 HTTPS 憑證,從原本的 40% 跳升到 58%,Let’s Encrypt 到現在總共支援了 47 million 網域。

用 Traefik 搭配 Docker 快速架設服務

更新: 2019.01.10 新增教學影片 相信大家在架設服務肯定會選一套像是 HAProxy, Nginx, Apache 或 Caddy,這四套架設的難度差不多,如果要搭配 Let’s Encrypt 前面兩套需要自己串接 (Nginx, Apache),而 Caddy 是用 Golang 開發裡面已經內建了 Let’s Encrypt,,管理者不用擔心憑證過期,相當方便。但是本篇我要介紹另外一套工具叫 Traefik,這一套也是用 Go 語言開發,而我推薦這套的原因是,此套可以跟 Docker 很深度的結合,只要服務跑在 Docker 上面,Traefik 都可以自動偵測到,並且套用設定。透過底下的範例讓 Traefik 串接後端兩個服務,分別是 domain1.com 及 domain2.com。來看看如何快速設定 Traefik。

DevOps 課程

課程緣由 當初想開這課程的原因是,希望可以造福全台灣的朋友,之前跟 iThome 合作開了一堂實體課程,但是很多人卡在假日無法出門,再來是實體課程成本比較高,有時候上課沒聽懂,回家也沒有老師可以討論,造成學習效果不是很好,所以我就來錄製線上課程,讓不能北上的朋友們也可以學習到基本的 DevOps 技巧。希望能透過線上課程可以跟學員有些互動,把 DevOps 推廣到各大公司及新創。如果正要創業,或是在 DevOps 上有些困擾,不知道該如何導入及選擇工具,都可以來跟我聊聊。團隊內原本使用 Bamboo 之後跳到 Jenkins 最後又跳到 Drone,本課程會介紹為什麼我們放棄 Bamboo 及 Jenkins,它們所帶來的缺陷,以及為什麼最後選擇 Drone。 課程簡介 Drone 是一套以 Docker 容器為基礎的 CI/CD 伺服器。每次執行編譯時,都是運作在 Docker 容器內,可以確保開發者都在獨立環境執行,避免每次編譯狀況都不同。傳統企業在導入 DevOps 流程都會以 Jenkins 或者是 Gitlab CI 為主流,前者是 Java 語言開發,後者是 Ruby 語言開發,維運人員會發現這兩套其實都蠻吃重系統資源,然而 Drone 是一套由 Go 語言開發的伺服器,啟動 Drone 時,只需要不到 20 MB 的記憶體就可以跑此服務,大幅降低維運成本,也讓維運人員更好維護伺服器。Drone 的出現就是為了讓團隊可以像 Github 一樣持續開發持續部署,另外開發者可以輕易的用自己喜歡的語言(像是 Node.js, Python 甚至 Bash … Continue reading “DevOps 課程”

在本機端快速產生網站免費憑證

大家看到網站免費憑證,一定會想到 Let’s encrypt 服務商提供一個網域可以使用 100 個免費憑證,如果您有很多 subdomain 需求,還可以申請獨立一張 wildcard 憑證,但是這是在伺服器端的操作,假設在本機端開發,該如何快速產生憑證,這樣開啟瀏覽器時,就可以看到綠色的 https 字眼