Slack archive
Channels
Source Code
Login with Slack
g0v-shadow
Month: 2018-09
2017-11 (15)
2018-01 (49)
2018-02 (4)
2018-03 (6)
2018-04 (3)
2018-05 (8)
2018-06 (1)
2018-07 (2)
2018-08 (2)
2018-09 (35)
2018-10 (7)
2019-09 (1)
2021-04 (1)
2022-11 (1)
2018-09-04
mingtsay
20:01:32
@poga
目前已知會有多少層?如果用 whitelist 方式呢?
ttcat
20:36:17
「原本是 https 的網址,改成 g0v 後還是 https,就連不上沒有 https 憑證的對應的 shadow 網址了」這個我有點看不懂
ttcat
20:37:09
@mingtsay
主要是希望盡量不要走 whitelist 的方式,因為政府會一直有新網站,另外就是希望簡化別的國家的 implement 程序
mingtsay
20:37:18
因為要 https 一定要憑證,而我們不知道會有什麼網址這樣。
mingtsay
20:38:55
例如今天政府弄了
example.gov.tw
然後明天弄了
2018.example.gov.tw
之類的,那我們頂多能用 wildcard 做到給
example.g0v.tw
(由 *.
g0v.tw
提供),可是對於
2018.example.g0v.tw
就必須另外跑驗證程序了。
ttcat
20:39:32
對,但是我想的是,當
aaa.bbb.ccc.gov.tw
改成
aaa.bbb.ccc.g0v.tw
的時
1. 檢查是否有
aaa.bbb.ccc.g0v.tw
的 https 憑證
2. 若無,自動向 let’s encrypt 申請,並 redirect 到
shadow.g0v.tw/aaa.bbb.ccc.gov.tw
3. 若有,導向 https 網址
mingtsay
20:39:32
我是有想過如果透過 certbot 在使用者第一次瀏覽的時候來跑 DV 會不會能解決這問題?
mingtsay
20:39:51
哦哦所以 ttcat 跟我想到同一個可的解法?
ttcat
20:40:08
最後一次跟 poga 討論是提了這個方案
ttcat
20:40:26
所以他在上面回「原本是 https 的網址,改成 g0v 後還是 https,就連不上沒有 https 憑證的對應的 shadow 網址了」
ttcat
20:40:33
我不太清楚什麼意思前陣子太忙沒追
mingtsay
20:40:44
沒憑證就先導向我們的 shadow portal 然後同時看要不要人工產或是自動產該 domain 的憑證?
ttcat
20:40:51
對
ttcat
20:41:14
然後下次有人連線到
shadow.g0v.tw/aaa.bbb.ccc.gov.tw
的時候,也會先檢查憑證有沒有申請過了
ttcat
20:41:22
如果有,就把
shadow.g0v.tw/aaa.bbb.ccc.gov.tw
redirect 回去
tkirby
20:42:20
第一次 hit 也許可以導向一個暫存頁 等 ajax polling 收到通知自動重導向到 https 版本,這樣就可以無縫接軌?
ttcat
20:43:09
但暫存頁如何產生?
tkirby
21:06:19
頁面就靜態, nginx 設定在 reverse proxy miss 時連過去? polling 時直接看 URL 就知道要檢查哪個東西
ttcat
21:06:30
++
mingtsay
21:06:37
++
poga
21:42:02
我那句話的意思是,當使用者把
https://aaa.gov.tw
改成
aaa.g0v.tw
時,瀏覽器會保留使用的 protocol,所以會連往
https://aaa.g0v.tw
。 這時候沒有憑證的話,chrome 就會直接顯示 protocol error 了
ttcat
2018-09-04 21:56:26
所以沒辦法設定一個判斷,如果沒有憑證,就 redirect?
poga
2018-09-04 21:58:05
瀏覽器會在傳送任何資料前先檢查憑證,憑證錯誤就不會傳資料了,所以沒辦法由 server 判斷後 redirect
ttcat
2018-09-04 22:01:52
okay 那我懂了
poga
21:44:15
第一次瀏覽的時候就自動申請是可行的,不過 let's encrypt 有 rate limit(每週每個 domain 50 個)
poga
21:49:35
所以也只有自動申請憑證這條路可走。可以接受次數限制的話之前已經有 prototype 了,需要的話我再找時間把他開起來
👍 1
ttcat
21:56:26
所以沒辦法設定一個判斷,如果沒有憑證,就 redirect?
poga
21:58:05
瀏覽器會在傳送任何資料前先檢查憑證,憑證錯誤就不會傳資料了,所以沒辦法由 server 判斷後 redirect
ttcat
22:01:52
okay 那我懂了
ttcat
22:14:17
可是我不懂誒,如果第一次瀏覽,沒有 https 不就會直接出現 protocol error
ttcat
22:14:26
怎麼觸發程式去自動申請
mingtsay
22:14:40
certbot 吧或是 acme.sh
ttcat
22:15:10
hmm
ttcat
22:15:25
那 redirect 能不能寫在這種 script 最後面
poga
22:23:06
流程是
1. 瀏覽器問 server 「你有沒有
aaa.g0v.tw
的憑證」
2. server 發現自己沒有憑證,呼叫 certbot 去跟 let's encrypt 申請憑證
3. certbot 拿到憑證後,server 把這份剛拿到的憑證傳回去給瀏覽器說「我有憑證喔」
4. 瀏覽器確認憑證正確後,才開始傳資料
poga
22:24:19
所以,如果 certbot 有拿到憑證,那就能直接走 https 了,不需要 redirect。
poga
22:24:38
如果因為次數限制拿不到憑證,那瀏覽器就中斷連線了,沒機會 redirect
2018-09-28
ttcat
03:27:55
http://datacollaboratives.org/