web-dev-qa-db-ja.com

「証明書が見つかりません-アプリChromeが証明書を要求しました」Android / Google Chromeの問題を修正するにはどうすればよいですか

問題

一部のウェブサイトユーザーは、Google ChromeでAndroidデバイス上のウェブサイトの安全な領域にアクセスするときに問題に直面しています。

このように見えます。

No certificates found' error, as seen in Chrome on Samsung Galaxy S6 (Android v5)

Browserstackの物理デバイステストを使用して、以下のデバイスで問題を再現できました。

  • Samsung Galaxy S6、Samsung Galaxy S5、Samsung Galaxy S4(Android v5およびv4.4)
  • Nexus 6(Android v6、v5、v4.4)
  • Moto X 2nd Gen(Android v6およびv5)

私の研究

私がオンラインで読んだすべての記事、フォーラム、質問(そして、間違ったものを探しているのでなければ、多くはありません)は、サーバーおよび/またはSSL証明書のセットアップと構成を指し、経験している問題は意図的に。

修正案1

私がこれまでに見つけた最も有用な記事は、 Issue 268055 "No Certificates Found" クロム問題トラッカーです。

コメント18 IISのSSL設定の変更を提案します。

IISにアクセスできる場合は、問題を修正できます。 基本的には、SSL設定に移動し、[SSLを要求する]のチェックを外し、クライアント証明書で[無視]が選択されていることを確認する必要があります

コメント28 バックアップします;

Google社員以外の場合、このエラーメッセージは、クライアント証明書を要求するサイトに遭遇したときにのみ表示されます。ここでChromeができることは何もありません-サイトはクライアント証明書を要求し、クライアント証明書が有効かどうかを知るために、Chrome for Android OSに尋ねてください。これが表示されているプロンプトです。Androidによって制御されており、すべてのアプリ(Googleまたはそれ以外)がそのフローを通過する必要があります。

これは、クライアント証明書を要求するように構成されたサイトで発生します、これを解決するには、クライアント証明書を要求しないか、Androidデバイスにクライアント証明書を構成します(たとえば、デバイス管理アプリケーションまたはPKCS#12ファイルのインストールを介して)。

kamakshi:これはすべて「設計による」動作ですが、サーバーオペレーターが変更する必要があるため、このバグをどうすればよいのかわかりません。

コメント4 ;

このバグを知っている人は、IISの構成についてあまり知らないと思います。それについてマイクロソフトと話をしたいと思うでしょう。 検索から、「クライアント証明書を無視する」が必要なオプションのようです

私たちはそれをしましたが、違いはなかったようです。

IIS SSL settings

IIS SSL settings

修正案2

スタックに関する別の質問( " PCでは信頼されているがAndroidでは信頼されていない証明書 ")は、中間証明書が欠落している可能性があることを示唆しています。

証明書ファイルに中間証明書がない可能性があります。同じ証明書販売者がいる別のWebサイトに既にアクセスしている場合、中間証明書はブラウザーに記憶されます。これは、あなたのウェブサイトへのすべての訪問者には当てはまらないかもしれませんし、もっと良いかもしれません。 SSL接続で欠落している中間証明書を解決するには、独自の証明書ファイルに中間証明書を追加する必要があります

確認したところ、ドメイン証明書((はワイルドカード証明書ではありません))、中間証明書、およびルート証明書があるため、それが問題だと思う。また、Networking4all Webサイトで サイトチェッカー テストを実行し、Qualys SSL Webサイトで SSLテスト を実行しましたが、両方ともエラーや警告なしでパスします。

私の質問

他の誰かがこの問題に遭遇しましたか?それを修正しようとする他の解決策はありますか?私はこの時点でアイデアが不足しているので、アドバイスをいただければ幸いです。

念のためにいくつかの追加の詳細

Webサイトが存在するサーバーはWindows Server 2008 R2およびIIS 7.5を実行しており、SSL証明書プロバイダーはThawteです。

前もって感謝します!

25
LHKC

このまったく同じ問題を解決したので、ここに私が見つけたものがあります...

サーバーの仕様(基本的にO.Pと同じ)

  • Windows Server 2008 r2
  • IIS 7.5
  • SSLプロバイダー:GeoTrust RapidSSL

最初の問題:古い暗号化ポリシー

サーバーが古い暗号化ポリシーを持っている可能性があることを指摘したいくつかの記事。少しの調査により、レジストリ設定を使用してすべてを構成する必要があることが明らかになりました。詳細については、MSサポートの記事 Schannel.dllで特定の暗号化アルゴリズムとプロトコルの使用を制限する方法 を参照してください。

サーバーが最新かどうかわからない場合は、 SSL Labsのサーバーテスト は、サイトの暗号化ポリシーを検証するための優れたツールです。

レジストリを手動で編集しますか?

MSサポートの記事では、レジストリキーの編集について詳しく説明しています。了解!もう少し研究すると、ワンクリックですべてのレジストリキーを更新する Nartac SoftwareのIIS Crypto という優れたユーティリティが見つかりました。参考までに、再起動も必要です。

Nartac Softwareサイトから:

IIS Cryptoは、管理者がWindows Server 2008、2012、および2016でプロトコル、暗号、ハッシュ、および鍵交換アルゴリズムを有効または無効にする機能を提供する無料のツールです。また、IISが提供するSSL/TLS暗号スイートを並べ替え、ベストプラクティスを実装できますシングルクリックで、カスタムテンプレートを作成し、Webサイトをテストします。

2番目の問題:不適切なIIS SSLサイト設定

IIS SSL設定を「受け入れ」クライアント証明書に設定することによるこの問題の根本。クライアント証明書を受け入れる必要はないので、単に設定を「無視」( OPの修正案#1の画像から)。

注:画像では「SSLが必要」がオフになっています。この議論では、チェックされるかどうかは関係ありません。重要なのは、サイトがhttpsを使用して接続できることです。

Ignore Client certificates in IIS

要約

サーバーで暗号化ポリシーが再構成され、IIS SSL設定がクライアント証明書を無視するように設定されると、「No certificate found」エラーが発生します解決されます。

11
Metro Smurf