Firefoxで突然出るようになったエラー。SSLで接続をするといくつかのサイトで”Secure Connection Failed”のエラーが出てくるようになった。
Secure Connection Failed An error occurred during a connection to xxxxx.jp. Cannot communicate securely with peer: no common encryption algorithm(s). (Error code: ssl_error_no_cypher_overlap)
2年ほど問題なく使っていたサイトでも出るし、いくつかのサイトでも出るので相手方の問題ではなさそうである。もしくはあるupdateやパッチを当てると引き起こされるのかもしれない。クライアント側を見ると複数人のエンドユーザーで見られる現象である。個別に設定を変えているということはないのだが、間違えてあるいは意図的にブラウザやOSの設定を変えたから出ているエラーということではないだろう。
IEで同じサイトにアクセスしてみたら特に問題なく使えるので、Firefoxでのみ起きるている。Firefoxのパッチが関係あるのだろうか。
下記のエラーメッセージから推測するとSSLで使われる暗号化アルゴリズムのネゴシエーションをするところでクライアント側とサーバー側で共通に利用できるアルゴリズムがないのではないかと考える。
ssl_error_no_cypher_overlap
http://yassblog.blog.so-net.ne.jp/2011-01-27によると該当のアルゴリズムがFirefoxで使えないようになっている可能性がある。about:configから確認をしてみたが、すべてのアルゴリズムは使えるようになっている。
下記のサイトでWiresharkによるSSLのネゴシエーションの確認方法が載っているのでこれを実行してクライアント側とサーバー側のアルゴリズムを確認してみる。
- http://yassblog.blog.so-net.ne.jp/2011-01-27
- http://www.infoq.com/jp/articles/HTTPS-Connection-Jeff-Moser
SSLをキャプチャしてみるとネゴシエーションは正常に完了している。しかしこの後に突然fatal errorを起こしていることがわかった。
使用されているアルゴリズムはTLS_RSA_WITH_RC4_128_MD5であることがわかった。このアルゴリズムについて最近話題になっていることはないか確認してみた。下記のページがあるが、特に大きな変更はないようである。
http://www.security-next.com/35904
正常につながるIEをつかってSSL ハンドシェイクの結果を比較する。
client側から提案するアルゴリズムの件数は少ないが選択されているアルゴリズムはFirefoxと同じであることがわかる。このネゴシエーションでIEでは正常につながっていることがわかる。
ここまででアルゴリズムの完全な不一致でエラーが出ているのではないことがわかった。では何が一致しないでこのエラーが出るのだろうか。