♨️

cloudflare zero trustを使っていてスマホアプリが使えない時の備忘録

に公開

結論

https://www.sataku.jp/blogs/20240506_fix_ssl_pinning_issue#エラーの原因はssl証明書ピンニングssl-certificate-pinning

こちらのブログにて詳しく書かれていますが、SSL証明書ピンニンングが原因のようです。
どうやらHTTPSをcloudflareが解読して再度暗号化すると、中間者攻撃と誤認されてしまうわけですね(その通りですが、今回は意図した中間者攻撃ですね)

そこで、HTTPポリシーのうち、 Do not Inspect を用います。

このポリシーは、HTTPリクエストを復号化する前にチェックされ、該当するリクエストは開封せずに転送されるようです。つまり、中間者攻撃にならず、今回のトラブルにならないわけです。

https://developers.cloudflare.com/cloudflare-one/traffic-policies/http-policies/#do-not-inspect

対応策

先ほどのブログと重なるところがありますが、効率的に追加する方法をメモしておきます

  1. firewall policyを新しく作成してください。名前は、do-not-inspectとかで大丈夫です。

  2. step2の式を構築するで、トラフィックセクションにルールを追加します。
    セレクターを Application オペレーターを in 値を Do Not Inspect に当てはまるすべての項目を選択します。(リストの一番上をクリックすると、各アプリケーションが追加されるはずです。)

  1. ORでトラフィックルールに新しいルールを追加します。
    セレクターを Domain オペレーターを in に設定します。

値については、使えないスマホアプリごとに適宜追加していくのが良いと思います。手元のスマホでは以下のドメインを追加する必要がありました。

tplinkra.com , tplinkcloud.com , starbucks.com , starbucks.co.jp , paypay.ne.jp , mobilesuica.com

今後も適宜追加する予定ですが、お手元で繋がらないアプリがあればその通信先ドメインをCloudflare のDNS logなどを見て、特定する👉先ほどのルールに追加するを繰り返せば良いと思います。

Discussion