初探Caddy搭建AWS EC2的HTTPS Web Server

前言 前陣子使用 AWS 的 EC2 來部署一個測試用的 backend api,以利 Netlify 上的前端網站作溝通,但因為近代瀏覽器(ex: Chrome…)遵守 CSP(Content-Security-Policy) 限制,避免 HTTPS 協定的網站前端 javascript 透過 fetch 方式去索取 HTTP 協定的任何資源,以避免 MIT(中間人攻擊),所以勢必得將自身 backend 的網域加上憑證,起初想到用 Nginx 搭配 Let’s Encrypt 來定期每三個月更新憑證,但後來發現 Caddy 更好用更簡潔,就順手紀錄一下操作的歷程。 Caddy 介紹 Caddy 是一個功能強大、可擴充的平台,可以提供(serve)服務或網站,底層是用 Go 撰寫的,依照 Caddy 官網所說,它不僅僅能作為 Web server 或是 proxy,更能作為 server of servers. Caddy 預設以 HTTPS 為通訊協定(也支援 HTTP/2),支援 gzip 壓縮,而且不再需要每三個月定期去 Let’s Encrypt 更新憑證,因為 caddy 會自動幫我們更新憑證。此外,運行時不仰賴其他套件或 runtime,可獨立 host 在 container 內。依照官網所說,caddy 已經是 production-ready,可以取代上一世代的 Nginx 或 Apache。 前置作業:創建 EC2 首先,我先在 AWS 上創建 EC2 的 instance:...

<span title='2023-01-24 09:32:04 +0800 +0800'>January 24, 2023</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;487 words&nbsp;·&nbsp;Madi