エラーメッセージ
net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH
エラーページには「ERR_SSL_VERSION_OR_CIPHER_MISMATCH」、自動化ツールには「net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH」と表示されます。ecdsa.com のテストでは、TLS 1.0 のみのサーバーと、RSA 鍵交換の CAMELLIA 暗号スイートしか持たないサーバーのどちらでもこのエラーが発生しました。
Chrome, Edge and other Chromium browsers — "This site can't provide a secure connection … uses an unsupported protocol"
このエラーの意味
Chrome とサーバーに共通の TLS バージョンまたは暗号スイートがないため、ハンドシェイクを確立できません。Chrome は、最新の暗号スイートと組み合わせた TLS 1.2 と 1.3 しかサポートしていません。TLS 1.0/1.1、RC4、3DES などの古い設定に限られたサーバーは拒否されます。ページには、そのサイトで「サポートされていないプロトコルが使用されています」と表示されます。
発生する理由
サーバーが TLS 1.0 または 1.1 にしか対応していない
よくあるChrome は 2020年に TLS 1.0/1.1 のサポートを終了しました。古いアプライアンス、プリンター、NAS、保守されていないサーバーは、今もそれより新しいバージョンを提供していません。
サポートされている暗号スイートがない
よくあるRSA 鍵交換と組み合わせた RC4、3DES、またはあまり使われない暗号スイート(CAMELLIA、SEED)しか許可しないサーバーには、Chrome が使える暗号スイートが 1 つもありません。
エッジに、要求されたホスト名の証明書がない
ときどき一部の CDN やロードバランサーは、カスタムドメインの証明書がまだ用意されていないと、ハンドシェイクを中止します。
修正方法
- 1.
サーバーが何を提示しているかを調べる
ECDHE の暗号スイートを使った TLS 1.2 で失敗する場合は、サーバーを更新する必要があります。
bash nmap --script ssl-enum-ciphers -p 443 legacy.example.com # versions and suites offered echo | openssl s_client -connect legacy.example.com:443 -servername legacy.example.com -tls1_2 -brief - 2.
サイト運営者:最新の暗号スイートで TLS 1.2/1.3 を有効にする
現行の暗号スイートは、過去 10 年間にリリースされたすべてのブラウザーで動作します。
text # nginx ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; - 3.
CDN でホストしているサイト:ドメインの証明書の状態を確認する
DNS をエッジに向ける前に、ドメインが紐付けられ、その証明書が発行済みであることを確認してください。
text CDN / hosting: check that the custom domain is attached and has an active certificate; some edges refuse the handshake for names without a certificate.
関連するエラー
net::ERR_SSL_PROTOCOL_ERRORChrome, Edge and other Chromium browsersSSL_ERROR_UNSUPPORTED_VERSIONFirefoxSSL routines:tls_post_process_client_hello:no shared cipherOpenSSL (server side: nginx, Apache, Postfix, openssl s_server)curl: (35) TLS connect error: error:0A000102:SSL routines::unsupported protocolcurl (OpenSSL backend)