web-dev-qa-db-ja.com

Internet Explorer 11 / Windows 7のTLS 1.2のバグ?

Apache/Linuxが提供するいくつかの小さなWebサイトを実行しています。現在、SSL構成をできる限り安全にするために、SSL構成をできる限り削減しようとしています。

Apacheを構成して、TLS 1.2とDHEまたはECDHE鍵交換を伴う暗号のみを許可するようにしました。 FirefoxとChromeの場合)は、このサーバーのWebサイトに完全に接続します。

ただし、標準構成のInternet Explorer 11(Windows 7 x64で実行)は、これらのWebサイトのいずれにも接続できません。 Wiresharkのキャプチャは、IEの最初のクライアントでTLS 1.2を試してみて、サーバーにその暗号を表示するなどを示し、選択した暗号を含め、サーバーの回答が正しいことを示しています。

次に、一見理由もなく、IEが再起動して新しいクライアントhelloを送信します。今回はTLS 1.0を使用します。これはもちろん失敗し、IEウェブサイトに接続できません。

IEにバグがあり、正しいプロトコルが正常に確立された後で間違ったプロトコルを試すようになる可能性がありますか?サーバーがTLS 1.2(おそらくかなり珍しい)?

1
Binarus

サーバーがMD5アルゴリズムを使用する証明書チェーンを提供する場合、Internet Explorer 9/10/11とEdgeが接続を中止するため、MD5証明書を使用しているかどうかを確認します このブログ =:

サーバーがWindows 7または8 schannel.dll- usingクライアントアプリケーションとTLS1.2接続をネゴシエートし、(弱い)MD5ハッシュアルゴリズムを使用する証明書チェーンを提供する場合、クライアントは接続(TCP/IP FIN)証明書を受け取ったとき。

キーワードmd5 tls1.2で検索すると、このブログ投稿が表示されます TLS 1.2ハンドシェイクの失敗 これは、同じ問題をより詳細に説明しています。基本的に、 RFC5246トランスポート層セキュリティ(TLS)プロトコルバージョン1.2 によると、MD5は安全なハッシュ関数と見なされなくなったため、schannel.dllはRFCに従い、MD5証明書チェーンを拒否します。

根拠は理解していますが、エラーメッセージがより具体的である場合は、トラブルシューティングの方が簡単でした。したがって、バグトラッカーに 問題を提出 しました。

SHA-256でのスワッピング1 証明書は問題を解決するはずです。

1 SHA-1も機能しますが、推奨されなくなりました

1
nhahtdh

同じ動作をするいくつかのWindows 7ボックスがありました。最終的に、MS14-066をインストールして、いくつかの追加の暗号を有効にする必要がありました。なぜ2014年後半のパッチがまだインストールされていないのかはわかりませんが、それで完了です。

あなたのマイレージは異なる場合があります。

1
GraduateOfAcmeU

IE 11およびApache 2.4。クライアント認証(ポート843)を使用して同様の問題を経験し、IE構成を変更し、最後に変更しました。 「<VirtualHost ...>」セクションのApache ssl config。

問題を解決するための最初の部分:クライアント構成

メニュー "Tools-> Internet options-> Advanced"、at "Security" section、uncheck SSL2. and SSL 3.そしてTLS 1.0、1.11.2がチェックされていることを確認してから、「適用」ボタンをクリックします。

同じメニュー "ツール->インターネットオプション->コンテンツ"の上で、 "SSL状態のクリア"ボタンをクリックします。

Internet Explorerを閉じて再度開き、Webサイトにアクセスしてみます。

たぶんあなたのケースでは、チェックする必要があるのはTLS 1.2だけです。 TLSを有効にしてさまざまな組み合わせを試してください。ただし、問題を回避するためにSSLを有効にしないでください。

最後にSSL3.0 + TLS1.0 + TLS1.1 + TLS1.2を試しましたが、うまくいきました。

いずれにしても、SSL2.0 + TLS 1.2を使用すると、互換性がないため、サイトへのアクセスがクラッシュします。

問題を解決するための2番目の部分:サーバー構成

Apache "config /"でウェブサイトのvirtualhostセクションを見てください。 "<VirtualHost *:[port]>"のようなセクションで、 "ServerName"パラメータと[PORT]にドメインの名前があることを確認してください(特にこの最後のアクション) 、間違いなく私の問題を解決しました)

例えば。

  • ServerName www.your-domain.com:80

  • ServerName www.your-domain.com:443

  • ServerName www.your-domain.com:843

「conf/extra /」ディレクトリにあるhttp-ssl.confファイルを確認することを忘れないでください(このパスとファイル名は、Apacheサーバーのインストールに依存します)。デフォルトの仮想で「ServerName」パラメーターのエントリを見つけることができますホストセクション。

お役に立てば幸いです。

0
jagumon