普段思ったことや、雑記。

Menu & Search

CloudFlareの『SSL/TLS 暗号化モード(HTTPS通信設定)』を使用したとき、『ERR SSL VERSION OR CIPHER MISMATCH』のエラーでChromeで発生し、接続できない場合の対処

2021年7月31日

英語の記事は見当たったが、日本語の記事がなかったので、書いておく。

主な対応方法

CloudFlareのSSL/TLS 暗号化モードはサブドメインはドット1回分までしか、仕様上対応していない。そのため、もし対象のDNSレコードにドットを2回以上設定値に使用していた場合、そのレコードの設定値をドット1回までのレコードに変更する。

経緯など

HTTPS通信の実現のため、少し楽をしたいと思い、CDN大手CloudFlareを使用し、クライアントとエッジサーバ間のHTTPSが通信設定(SSL/TLS 暗号化モード)をやっていた。設定したレコードは2つで、例えると以下のような感じである。

service.hogefuga.com
api.service.hogefuga.com

service.hogefuga.comは、意図するようにHTTPSでの接続が確立されたのだが、api.service.hogefuga.comのみ時間経過を待ってもHTTPSによる接続が確立されず、Chromeでは、『ERR SSL VERSION OR CIPHER MISMATCH』のエラーが出てしまっていた。
一方で、対象ホストにはpingコマンドでパケットの到達を確認し、hostコマンドで名前解決を確認、さらに対象ホストのWebサーバのログでもHTTPリクエストの到達を確認した。
そのため、CloudFlare側の設定内容を疑ってみたが、調べているとCloudFlare公式からこんな記事を見つけた。

Community Tip – Fixing ERR SSL VERSION OR CIPHER MISMATCH in Google Chrome – Tutorials – Cloudflare Community
https://community.cloudflare.com/t/community-tip-fixing-err-ssl-version-or-cipher-mismatch-in-google-chrome/42162

上記の記事に答えがあって、以下がその答えの部分である。

Understand how the certificate works
Certificates will only cover a single level of subdomains (.example.com, but not *…example.com):

Will work – www.example.com

Will work – example.com

Will work – test.example.com

Will NOT work – www.test.example.com

Will NOT work – staging.www.example.com

要は、Aレコードのサブドメインはドット1回分のレコードまでしか、このオプションは対応していませんよ、という内容だった。CloudFlareのコントロールパネルを確認したが、2021年7月31日時点ではこのような制限は明記されておらず、通常は実際に設定をしてみて、この事象に遭遇をしてから初めて気づくものだろうと思われる(これは、極めて不親切…)。当初は、どのようなドメイン形式もいけるのだろうと思っていたが、そもそも万能ではないということだ。

ドット2回のレコードをサブサブドメインと称する表現が正しいかは分からないが、これに対応していないとなると、レコードの設定値としてはやや自由度が低いため、Let’s Encryptで証明書を取得しようかと思っている。
しかし、単純にクライアントとエンドポイントを単にHTTPS化したいというだけで、特に多くのこだわりがない人にとっては、SSL/TLS 暗号化モードはかなり便利なオプションではある(証明書の更新作業も不要なので、用途が合えばとても楽ができる)。

2021年8月1日追記:

今時、WebアプリケーションにCDNを使わない構成というのは考えにくい。結局のところCDN利用というアーキテクチャを取った場合、やはりCloudFlareの場合、SSL/TLS 暗号化モードのオプションを取るのは最低限ということで、Aレコードの自由度は低いが、採用することにした。

Article Tags
mmiyauchi

プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。

Related article

Redux(react-redux)における適切な配列要素の更新

2021年8月23日…

Dart(Flutter)についての所見

Dart(Flutter)についての所見

第一印象では、クロス…

クソコードとは何であるか

そういえば、クソなコ…

Discussion about this post

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Type your search keyword, and press enter to search