poynt2005's blog

一個我的個人文章發表的地方

0%

heroku驗證

heroku信用卡驗證

關於Heroku的信用卡驗證已經困擾我許久,
大家都知道的,Heroku Free Dyno沒有信用卡驗證是每個月550小時,
什麼Add-on、有的沒有的功能都不能用

緣起

其實我認為,550小時真的夠用了,又不是什麼大型網站,
550除以30天,等於是每天都至少有18小時能用,
真的是很夠用,
免費版本每隔半小時會休眠一次,不過這也不打緊,
就說不是那種24小時都要在線的網站了,
我網站可能一天使用還不超過5小時= =
不過這都不是我想去開通信用卡認證的理由,
而是如果要使用自訂網域的話,就必須得通過信用卡認證,
自訂網域真的很重要,不是我在說
網址上那個herokuapp真的不太好看,還是開個自訂網域比較好
所以仍要驗證信用卡

經過

經嘗試過,郵局的VISA卡是過不了的,
不過官網明明說可以支援debait card,這就很弔詭了
於是在萬能的淘寶上找了一下,
之前有個7R就能幫認證的商品被下架了,
只有剩幾個賣家關門在驗證AWS的,找了幾個問一問,
後來問到有個說30R幫我開,這TM也太坑,
驗證信用卡也就刷卡1美元而已,收我30R到底三小。。。
上hostloc看了一下,因為沒帳號也沒辦法看到某些文,
爬了很久還是沒解決方法,
後來又爬了一些虛擬信用卡的文,每一篇的申請門檻都超級高,
也打消了這個念頭,因為實在不想花30R去認證= =
到了昨天終於忍不住了,Wechat詢問30R的賣家,
說是可以提供虛擬信用卡的住址,可以驗證美區Paypal
不過Heroku能不能過他也不知道,而且這卡買了也不能退
不過既然都這樣了,想說試試看也好,
大不了不能驗證就搞個美區PP也不錯,沒想到最後還真的能驗證。。。

設定

設定過程沒啥難的,幸好之前就把DNS server轉到cloudflare上,
速度真D快,加上去之後馬上就好了
不過Heroku免費方案的自訂域名沒有附SSL,所以推薦免費的cloudflare證書

這邊有兩個選擇

  1. cloudflare cname對應到heroku提供帶有herokudns的網址
  2. cloudflare cname對應到heroku原本的herokuapp網址

如果使用plan 1,就必須在heroku上添加自有的SSL,或是由Heroku提供SSL,
才可以在cloudflare選擇Full Encryption(後面會提),不然只能用Flexible,

眾所皆知heroku付費方案真的超貴

如果使用plan 2,則可以在cloudflare上選擇full encryption
所以我選2,
Heroku添加完域名後,再到cloudflare添加CNAME指向herokuapp那個網址,
DNS要選proxied,這樣才可以使用cloudflare提供的免費SSL證書,
SSL選擇Full就行,頁面就完成加密了

Full vs Flexible

由cloudflare的兩張圖我們可以知道:

Full Encryption:
Full
Cloudflare 到使用者的連線會經由Cloudflare加密
Cloudflare連線到Origin server則會經由Origin Server加密
而herokuapp這個網域本身的連線就有自帶Heroku的SSL了,
所以CNAME對應到herokuapp這個網域可以實現Full Encryption

Flexible:
flex
Cloudflare 到使用者的連線會經由Cloudflare加密
Cloudflare連線到Origin server不會加密
因為herokudns那個網址並沒有自帶SSL,所以如果CNAME要對應herokudns那個domain的話
就代表cloudflare與origin server之間無法加密,
所以就是flexible的情境,
如果CNAME對應herokudns後,在這邊設為Full的話
因為cloudflare無法與origin server建立加密連接的關係
瀏覽網站時,cloudflare會返回一個SSL錯誤

結語

如果之後有辦法申請VCC的話,一定要去申請
還聽說有無限開卡的平台,這個一定要給他薅到爆
開個100張信用卡,每年薅一次GCP的羊毛,
功能還比這種PaaS還多。。。

雖然用PaaS我不用在設定環境了啦,不過老子也能用docker阿= =