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 課程”

10 分鐘內用 Traefik 架設 Drone 搭配 GitHub 服務

這標題也許有點誇張,但是如果實際操作一次,肯定可以在 10 分鐘內操作完成。本篇來教大家如何用 Traefik 當作前端 Proxy,後端搭配 Drone 服務接 GitHub,為什麼會用 Traefik,原因很簡單,你可以把 Traefik 角色想成是 Nginx,但是又比 Nginx 更簡單設定,另外一點就是,Traefik 自動整合了 Let’s Encrypt 服務,您就不用擔心憑證會過期的問題。假如機器只會有一個 Drone 當 Host 的話,其實也可以不使用 Traefik,因為 Drone 其實也是內建自動更新憑證的功能。如果您對 Traefik 有興趣,可以直接參考底下兩篇文章 用 Traefik 搭配 Docker 快速架設服務 (內附教學影片) Traefik 搭配 Docker 自動更新 Let’s Encrypt 憑證 (內附教學影片)