Firefox で SSL peer was not expecting a handshake message it received. エラー

経緯

Firefox で Google を開こうとしたところ、次のエラーが表示されてしまったので対処法をメモ。

Firefox で Google を開こうとしたらエラーが発生
Firefox で Google を開こうとしたらエラーが発生

安全な接続ができませんでした

example.jp への接続中にエラーが発生しました。SSL peer was not expecting a handshake message it received.

エラーコード: SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT

受信したデータの真正性を検証できなかったため、このページは表示できませんでした。

この問題をウェブサイトの管理者に連絡してください。

上のメッセージは example.jp としていますが、今回のケースではここが www.google.com だったわけです。 Google を表示しようとしただけなのですが……。

ちなみに、 Chrome 等の他のブラウザでは開くことができました。

原因

端的に言うと、 Firefox の OCSP Stapling でエラーが発生していることが原因のようです。

順番に追っていくと、まず、 Firefox は Webサイトを開く際に、そのサーバにインストールされているSSLサーバ証明書の状態をオンラインで検証しています。

検証のためのプロトコルが OCSP(Online Certificate Status Protocol) ですね。

OCSP では上述の通りSSLサーバ証明書が失効していないか検証するため、閲覧するWebサイト以外に 認証局(CA / Certificate Authority) の OCSPレスポンダー にリクエストを投げます。

しかし、 OCSPレスポンダー へ通信できなかった場合にはSSLサーバ証明書の状態が検証できなかったり、閲覧しようとするWebサイト以外に通信しているというためプライバシー的な課題もあります。

そこで、SSLサーバ証明書がインストールされているWebサーバと OCSPレスポンダー が通信を行い、その結果のキャッシュをSSLサーバ証明書と共にクライアント(ブラウザ等)に返却する、という風にすることでブラウザは OCSPレスポンダー と通信せずに検証を行うことができます。

この仕組みを OCSP Stapling (staple / ホッチキスで止めるの意) と言います。

Firefox のこの OCSP Stapling の機能が上手く働かないことが、今回の現象が原因のようです。

対処

Firefox での対処としては、先の OCSP Stapling の機能を無効化することでWebサイトを開くことができるようになります。

ただし、セキュリティ機能をオフにする、ということなので、例えば本来はOCSPの検証で失敗してエラーになるはずのフィッシングサイト等も普通に開けてしまう、といった副作用が考えられるため、あまりオススメはできません。

どうしても、という場合以外は他のブラウザで閲覧する、といった回避策を取った方が良いと個人的には感じました。

その上で一応 Firefox の OCSP Stapling を無効化する方法を以下に記します。

まず Firefox のアドレスバーに about:config と入力してエンター。

Firefox のアドレスバーに about:config と入力してエンター
Firefox のアドレスバーに about:config と入力してエンター

警告が表示されますが進みます。

設定変更画面が表示されるので「ocsp」と入力してパラメータを検索します
設定変更画面が表示されるので「ocsp」と入力してパラメータを検索します

設定変更画面が表示されるので「ocsp」と入力してパラメータを検索します。

検索結果の中にある security.SSL.enable_ocsp_must_staple のパラメータの true の部分をダブルクリックして false にします。
検索結果の中にある security.SSL.enable_ocsp_must_staple のパラメータの true の部分をダブルクリックして false にします。

検索結果の中にある security.SSL.enable_ocsp_must_staple のパラメータの true の部分をダブルクリックして false にします(これで「必ず検証する」をオフにする)。

Google を開くことができました。
Google を開くことができました。

これで Google を開くことができました。

閲覧後は先のパラメータを true に戻しておくと良いと思います。

参考

Firefox のエラー対処

OCSP Stapling

OCSP

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。