iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
2

今日目標

昨天已經把網站部署上去了,只差沒有 HTTPS,今天趕快來補一下

解決方案

支援 HTTPS 的方式有很多種,有免費的也有付費的,有自己申請也有自動申請的,筆者這邊提出比較常見的三種:

  • nginx + acme.sh

    acme.sh 是個用來自動申請 HTTPS credential 的工具,只要安裝在遠端主機上他就會自動幫你申請,期限快到了還會自動刷新,真的超厲害

    申請到憑證之後再用 nginx 負責處理 HTTPS,比較麻煩的地方在於還要自己安裝 nginx、寫 nginx 的設定轉發請求,但如果你的網站本來就有用 nginx 那這個方案就很適合你

  • caddy

    caddy 是一個類似 nginx 的 web server,他會幫你處理好所有 HTTPS 問題,你只要安裝好寫個設定檔就可以,還滿適合小型網站使用,用起來也超簡單

  • Cloudflare

    Cloudflare 是一個網路服務,提供 HTTPS、CDN、DDOS 防護等等很多功能,而且也有提供一個網站的免費額度,因為他用起來很簡單而且不用在機器上安裝任何東西,所以這邊會用它來支援 HTTPS

Cloudflare HTTPS 原理

目前的網域 phish-github.com 是直接導到機器的 IP 35.230.77.238,過程沒有經過特別的加密,如下圖

用了 Cloudflare 的服務後可以把 phish-github.com 導到 Cloudflare server 去,他會幫我們處理好 HTTPS,然後再把請求導到我們的機器,這樣瀏覽器就會看到 phish-github.com 這個網域有 HTTPS 了~

使用 Cloudflare HTTPS

先到 Cloudflare 註冊後他會要求你輸入 domain,就輸入 phish-github.com 然後選擇免費版的

然後會看到一個設定 DNS 的頁面,這個先不理他繼續 continue,晚點再來設定

接下來會看到類似下圖的頁面,這個是在教你怎麼做上面提到的第一步:把域名(phish-github.com)導到 Cloudflare,可以點下面的 I need help ... 然後選 namecheap,他會有一步一步的教學告訴你怎麼在 namecheap 上設定,跟著他的教學做很簡單

完成後會到一個 overview 頁面,這邊是 Cloudflare 在確認你有沒有把網域導過來,如果你上一步有設定好的話稍微等一下就會變成下圖的綠色了

接下來到 Crypto 裡面把 SSL 設為 Flexible ,還有下方的 Always Use HTTPS 設成 On ,這樣就開始支援 HTTPS 了

然後就是最後一步:讓 Cloudflare 把請求導到我們機器的 IP,新增一個 A Record 把請求導到我們的機器 35.230.77.238

成果

HTTPS!!!

小結

今日是 Day27,雖然每天寫文章很累,但總算是完成當初自己在 Day01 設下的目標

後面還有幾天就來談談怎麼防範這種用 reverse proxy 做的釣魚網站吧


上一篇
Day26-部署 II
下一篇
Day28-如何防範(開發者篇)
系列文
Go Phishing!30 天用 Go 實作 Reverse Proxy 之釣魚大作戰30

尚未有邦友留言

立即登入留言