iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0

前面跟大家介紹 AWS ACM(SSL 憑證那位小天使),都還在說什麼 CloudFront、ALB、API Gateway 自動更新憑證超方便。結果你心裡默默冒出一個問號:
「可是我的網站根本不是架在 AWS 上,這樣還能爽爽用嗎?」

答案是 —— 當然可以
AWS 最厲害的地方,就是讓你乍看覺得「不行吧」,結果再看文件才發現:「嗶~消音~,還真的可以欸。」

地端也能用 AWS SSL,怎麼辦到的?

我們用的 SSL 憑證是沒有實體檔案的,地端 Server 也能用?! 真都!假都!
https://ithelp.ithome.com.tw/upload/images/20250923/20141071xvAYon2QEO.png
簡單來說,ACM 憑證本來就是綁 CloudFront、ALB、API Gateway 等 AWS 自家服務。要是你服務架在自家地下室的 NAS,或是公司 IT 室那台不知道幾百年的 Linux Server,直接用?不好意思,沒門。

但聰明的工程師會想到:
「那我就用 CloudFront 當作前排肉盾啊!」

這樣一來,CloudFront 幫你接前面所有流量,後端 Origin 指到你家 NAS 或地端機器,你就能順便吃到 ACM 憑證 + 自動更新的 buff。
想像一下,這招就像把你家巷口的小麵攤包裝成五星級餐廳:客人訂位都是透過高級飯店的櫃台(CloudFront),最後吃到的麵還是老闆娘現炒的牛肉炒麵(地端 Server)。
https://ithelp.ithome.com.tw/upload/images/20250923/20141071m4QIUXjofF.png
是不是很有畫面?
示意架構圖如下:
https://ithelp.ithome.com.tw/upload/images/20250923/20141071XbcX2m0pVa.png

前置條件:還是要準備點東西

不過要上這套 combo,還是有幾個前置條件,不然 CloudFront 也是幫不了你:

  1. 你的主機要有一個有效的域名(千萬不要跟我說是 192.168.xxx 那種內網 IP)。
  2. 或者你要有一個固定 IP(不能是動態 IP 哦!不然你 CloudFront 今天幫你代理,明天就找不到人了)。

有這兩個至少其一,就能開始玩。

設定步驟:老闆走過來也能在五分鐘講完

第一步:進 CloudFront 建立一個 Distribution,名稱自己取一個,不要跟我一樣啦!我亂取的啦!
https://ithelp.ithome.com.tw/upload/images/20250923/20141071y2ydZ0sBcr.png

第二步:
Origin type 選「Other」,因為後端不是 AWS 的東西嘛。接著在 Custom origin 輸入你地端網站的域名或 IP。
如果你是用 NAS 架站,那就乖乖填 NAS 的固定 IP。
其他設定?不用想太多,先放預設就好 —— 畢竟八成工程師的哲學是「能動就好,出事再 debug」。
https://ithelp.ithome.com.tw/upload/images/20250923/201410715qn88tpCCi.png

第三步:
WAF 要不要開?這就跟「要不要買防毒軟體」一樣,看公司有沒有錢。建議如果你的地端主機是拿來收集會員資料的,還是開一下,不然等哪天被駭了,老闆只會問一句:
「為什麼沒先防堵?」
而不是:「為什麼 Server 被駭了?」
這裡做範例先以不啟用做說明,先用簡單的起手式讓小夥伴可以先用起來,之後進階的設定可以再補上,正所謂師父領進門,修行看個人。
https://ithelp.ithome.com.tw/upload/images/20250923/201410711ffCBhWd6h.png

最後檢查一遍設定,按下 Create distribution,恭喜你 —— CloudFront + 地端的 combo 就組合成功啦。
https://ithelp.ithome.com.tw/upload/images/20250923/20141071zyf0reVfEQ.png

SSL 設定:直接複製貼上

接下來的步驟跟前一篇「CloudFront 當你網站前排最肉的坦克」一模一樣,設定 ACM 憑證、綁定你的域名,這邊就不重複啦。
唯一的差別就是,這次坦克後面不是 EC2,而是你家機房那台永遠風扇狂轉的鐵箱。

CloudFront 隱藏技能:地理位置過濾

CloudFront 還有個超爽的小技巧 —— 地理位置過濾(Geographic restriction)

舉個例子:
你做的是台灣限定的服務(像是手搖飲外送 API 🤣),根本不需要讓全世界都能訪問。這時候就能設定成「只有台灣的使用者能連到網站」,其他國家直接送一個 403 錯誤訊息回去。

設定流程簡單到爆:

  • 打開 Distribution → SecurityGeographic restrictions
    Countries(國家) 右邊的 Edit 用滑鼠左鍵點一下,進入國家的設定。
    https://ithelp.ithome.com.tw/upload/images/20250923/20141071YtMX3zuQ0x.png
  • Allow list,挑 Taiwan,存檔。
    https://ithelp.ithome.com.tw/upload/images/20250923/20141071eJb7uPbTTN.png
    https://ithelp.ithome.com.tw/upload/images/20250923/201410715OiYqo8HGI.png
  • Done!其他國家來敲門就只能吃 403。
    https://ithelp.ithome.com.tw/upload/images/20250923/20141071DUChQElun8.png
    這功能有啥好處?
  • 少一堆莫名其妙的流量,順便幫你省錢(AWS 每個 byte 都在算錢,懂的都懂)。
  • 避免一些來路不明的攻擊,至少把戰線縮到你要服務的區域。

當然,還有 Block list 模式,反過來把某些國家踢出去,適合有「黑名單」需求的專案。

這招 CloudFront + ACM combo 的精隨就是:

  • 用 AWS 的雲端服務
  • 來幫你地端服務穿上西裝

SSL 憑證自動更新?有。
資安防護?有(如果你有開 WAF 的話) 。
省錢?嗯…至少流量有被過濾啦。

所以,下次有人問你:「ACM 可以在地端用嗎?」
你就可以裝逼回一句:
「在我的環境裡是可以的呀。」


上一篇
Day 12 - 算帳的時候到了
系列文
最適合小型工作室精打細算的服務使用法13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言