web-dev-qa-db-ja.com

Firefox「ssl_error_no_cypher_overlap」エラー

同僚と私は、Firefox 3.0.6を使用して、開発中のJava 1.6.0 ___ 11 Webアプリケーションにアクセスするのに問題があります。すべてはセッション開始1〜30分で問題なく動作します...しかし、最終的に、接続は失敗し、次のエラーが表示されます。

_Secure Connection Failed_

_An error occurred during a connection to 10.x.x.x._

Cannot communicate securely with peer: no common encryption algorithm(s).

_(Error code: ssl_error_no_cypher_overlap)_

IEは正常に動作します。 Firefoxは、WindowsとFedoraの両方でエラーをスローするため、問題はOSに関係していないようです。 Java EEアプリケーションはTomcat 6.0.16サーバーで実行されます。すべてのページは、mod_nssを備えたApache 2.2.8 HTTPサーバーを介してTLS 1.0を使用して暗号化されます。

Apacheサーバーは、SSL 3.0接続を拒否するように構成されています。私たちが持っている1つの仮説は、FirefoxがSSL 3.0接続を確立しようとしているかもしれないということです...しかし、なぜですか?

いくつかのグーグルに基づいて、次のことを試みましたが、成功しませんでした:

  • firefox 2.xを使用します(2.xは機能したが3.xは機能しなかったインスタンスを報告した人もいます):

  • sSL2を有効にする

  • sSL3を無効にする

  • oCSPの無効化(ツール>オプション>詳細設定>暗号化>検証)

  • クライアントコンピューターのウイルス対策/ファイアウォールがポート443(httpsポート)をブロックまたはスキャンしていないことを確認する

何か案は?

18
Michael

Www.tpsynergy.comでサーバーの証明書を更新しているときに同じ問題が発生しました。新しいサーバー証明書をインポートしてTomcatを再起動した後、取得していたエラーはERR_SSL_VERSION_OR_CIPHER_MISMATCHでした。多くの調査の後、このリンクを使用しました https://www.sslshopper.com/certificate-key-matcher.html csr(証明書署名要求と実際の証明書)を比較しました。両者は一致しませんでした。そこで、新しいcsrを作成し、新しい証明書を取得してインストールしました。動いた。

したがって、プロセスの完全なステップは

  1. 証明書がインストールされる同じサーバーから、CSRを作成します

keytool -keysize 2048 -genkey -alias Tomcat -keyalg RSA -keystore tpsynergy.keystore(必要に応じてドメイン名を変更します)

これを作成する際に、名と姓を要求します。名前を付けないで、ドメイン名を使用してください。例えば、私はwww.tpsynergy.comとしてそれを与えました

2. keytool -certreq -keyalg RSA -alias Tomcat -file csr.csr -keystore tpsynergy.keystore

これにより、同じフォルダーにcsr.csrファイルが作成されます。このコンテンツをgodaddyサイトにコピーして、新しい証明書を作成します。

  1. ダウンロードした証明書のZipファイルには、Gd_bundle-g2-g1.crt gdig2.crt youractualcert.crtの3つのファイルがあります。

  2. Godaddyリポジトリからルート証明書gdroot-g2.crtをダウンロードする必要があります。

  3. これらすべてのファイルを、CSRファイルを作成した場所とキーストアファイルがある場所から同じディレクトリにコピーします。

  4. 次に、以下のコマンドを1つずつ実行して、証明書をキーストアにインポートします

    keytool -import -trustcacerts -alias root -file Gd_bundle-g2-g1.crt -keystore tpsynergy.keystore

    keytool -import -trustcacerts -alias root2 -file gdroot-g2.crt -keystore tpsynergy.keystore

    keytool -import -trustcacerts -alias Intermediate -file gdig2.crt -keystore tpsynergy.keystore

    keytool -import -trustcacerts -alias Tomcat -file yourdomainfile.crt -keystore tpsynergy.keystore

  5. Confフォルダーのserver.xmlファイルにこのエントリがあることを確認してください

  6. Tomcatを再起動します

あなたが試したこととエラーメッセージを考えると、これはTLS/SSLバージョンではなく、使用された正確な暗号アルゴリズムともっと関係があると思います。万が一Sun以外のJREを使用していますか、それとも別のベンダーのセキュリティ実装を使用していますか?可能であれば、別のJRE/OSを使用してサーバーをテストしてください。それに失敗すると、 Wireshark ( 'tcp.port == 443'のフィルターを使用)で何が起こっているかを見ることができるかもしれません。

6
alexh

ウィキペディアでSSLネゴシエーションのプロセスを確認すると、最初にClientHelloおよびServerHelloメッセージがブラウザーとサーバー間で送信されることがわかります。

ClientHelloで提供される暗号がサーバー上で重複するアイテムを持っている場合のみ、ServerHelloメッセージには両側がサポートする暗号が含まれます。そうしないと、共通の暗号が存在しないため、SSL接続が開始されません。

この問題を解決するには、ブラウザで一生懸命試すのではなく(通常、OSレベルで)暗号をインストールする必要があります(通常、ブラウザはOSに依存しています)。私はWindowsとIEに精通していますが、LinuxとFirefoxについてはほとんど知らないので、何が問題なのかを指摘することはできますが、ソリューションを提供することはできません。

4
Lex Li

Burp (または、少なくともGoogleを検索するときにこのページに移動する問題)を使用すると、セキュリティで保護されたサイト(https://)を参照する際に同様の問題が発生しました。

  • ssl_error_no_cypher_overlap Firefoxで
  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH Chromeで

sing Java 8 の問題であることが判明しました。Java 7に切り替えたとき、問題は停止しました。

2
SharpC

最初に確認するのは、mod_nssの構成です。それは奇妙なものです、それはあなたのものであり、それのような世界には何もありません:-)一方、Firefoxまたはmod_nss自体にいくつかの大きなバグがあった場合、私はあなたが今までにそれについて知っていたと思いますグーグルクエスト。設定をいじった(たとえば、SSL3やその他のさまざまなランダムな調整を無効にする)という事実も疑わしいです。

非常にバニラのmod_nss構成に戻って追跡し、それが機能するかどうかを確認します。次に、問題を再現できるまで、現在の構成に向けて体系的に変更します。その音により、エラーの原因はmod_nssの暗号仕様設定と関連するプロトコルネゴシエーションのもののどこかにあります。そのため、SSLv3をオフにしようとしたときに、誤って何かを変更したかもしれません(偶然、SSL3を無効にするのはなぜですか?通常はV2を無効にしますか?)。

確認すべきもう1つのことは、最新のmod_nssを使用していることであり、これは既知のバグではありません。セッションを開始し、その後失敗するという事実は興味深いです。セッションを再ネゴシエートしようとして、その時点で暗号のネゴシエーションに失敗している可能性があります。したがって、対称暗号である可能性があります。または、単にmod_nssのバージョンの実装バグで、何らかの理由でプロトコルが文字化けする可能性があります。

もう1つのアイデアは、これはワイルドな推測です。ブラウザは、無効にする前にSSLv3とネゴシエートされたセッションを再開しようとしています。V3がオフになっているときにセッションを再開しようとすると、何かが壊れます。正しく実装しないでください。

Java/Tomcatのものは赤いニシンのように見えます。説明を誤解しない限り、SSLハンドシェイク/プロトコルに関係するものはありません。

0
frankodwyer

Firefoxの詳細設定では、暗号化を設定できるはずです。デフォルトでSSL3.0とTLS1.0をチェックする必要があります。したがって、firefoxがssl 3.0接続を作成しようとしている場合は、ssl 3.0s設定のチェックを外してください。

それでもうまくいかない場合は、about:configページで「ssl2」を検索してみてください。私のFirefoxには、ssl2がデフォルトでfalseに設定されています。

0
nchris