9

私の会社では、.NET Web サービスと、その Web サービスを使用するクライアント DLL を開発しました。Web サービスは SSL 経由で当社のサーバーでホストされており、証明書は GoDaddy によって提供および署名されています。ホスト環境にクライアントがあり、Web サービスにアクセスしようとすると、クライアント dll から次のエラー メッセージが表示されます。

System.Net.WebException 基になる接続が閉じられました: SSL/TLS セキュア チャネルの信頼関係を確立できませんでした。

私たちの修正は、サーバー上で IE を開いてもらうことでした。これは、多くのホストされたサービスにとってそれ自体が課題であり、WSDL の URL に移動します。次に IE は、セキュリティ警告ダイアログを表示します。証明書の日付は有効であり、ページの名前と一致する有効な名前ですが、信頼することを選択していない会社によって発行されたことが示されています. [はい] をクリックして続行すると、クライアント dll は Web サービスに正常に接続し、通常どおり動作します。

GoDaddy が有効なパブリッシャー リストに含まれていなかった理由を知っている人はいますか? 私たちが実行しているすべてのサーバーには、有効な機関として GoDaddy があります。セキュリティ上の理由から、彼らは GoDaddy の権限をアンインストールしたと推測していますが、他に根本的な問題がないことを完全には確信していません.

残念ながら、これをローカルで再現しようとしてもうまくいきませんでした。インターネット オプションにアクセスして GoDaddy オーソリティを削除し、当社のサービスにアクセスすると、ssl は問題なく動作します。パブリッシャーのリストに戻ると、GoDaddy がすぐに表示されます。2 番目の質問は、無効な証明書の警告が表示されるように、GoDaddy を削除する方法を教えてください。

では、最後の質問です。無効な証明書を無視するように Web サービスに指示できるコードの方法はありますか。古い W​​eb サービスではなく、WCF を使用してプログラムでこれを行うという投稿を見たことがあります。

4

5 に答える 5

6

SSL証明書の署名に使用される中間証明書をサーバーにインストールする必要がある場合があります。

ブラウザーは、SSL 証明書に署名した一連の証明書の検証をチェックすることによって、SSL 証明書を検証しようとします。サーバーが証明書チェーンに SSL 証明書を提供しない場合、ブラウザーは SSL 証明書を拒否する可能性があります。(IE よりも Firefox の問題です)。これを機能させるには、クライアント マシンにルート証明書をインストールする必要があります。

于 2010-12-20T18:57:57.367 に答える
3

VB.NET に相当するものは

   System.Net.ServicePointManager.ServerCertificateValidationCallback = Function(senderX, certificate, chain, sslPolicyErrors)
                                                                             Return True
                                                                         End Function
于 2015-11-04T21:26:57.553 に答える
2

これは実際にはサーバー障害の質問ですが、ここにできることを追加します。

Windows マシンが通常信頼するルート証明機関リストは、かなり定期的に更新されます。これは、IE の Windows Update として発生します。詳細については、MSDN を参照してください。

クライアントが Windows Update を有効にしていない場合、または Windows Update を積極的に無視している場合 (残念ながら多くの IT 部門では非常に一般的です)、SSL プロバイダーを切り替える以外にできることはあまりありません。

基本的に、証明書の更新を取得するか、問題のマシンによって既に信頼されている可能性が高い証明書プロバイダーに切り替える必要があります。通常、これはVerisignまたはThawteを意味します。3 番目の選択肢は、あなたが行ってきたルートです。ルート CA を手動で信頼してもらいます。

結局のところ、問題の IT 部門がバカだからといって、このようにアプリを変更するという考えは嫌いですが、本当の問題は、あなたの会社がこれをどのように処理したいかということです。

于 2010-12-20T18:56:00.347 に答える
2

Web サーバー上のその証明書の Go Daddy Certification Path を見ると、Go Daddy Class xxx または Starfield Class xxx が表示されますか?

また、非レガシー クライアント、つまり Windows Vista 以降では、Go Daddy 認定パスには何が表示されますか? パパクラスxxxまたはスターフィールドクラスxxxに行きますか?

警告を受け取ったこれらのクライアントはレガシー クライアントですか? つまり、WinXP およびそれ以前のバージョンですか?

ルート証明書の更新は、Windows Vista の時点で動作が異なります。

http://support.microsoft.com/kb/931125

Windows Vista 以降のルート証明書は、自動ルート更新メカニズム、つまりルート証明書ごとに配布されます。ユーザーが (HTTPS SSL を使用して) 安全な Web サイトにアクセスしたり、安全な電子メールを読んだり (S/MIME)、署名された ActiveX コントロールをダウンロードしたり (コード署名)、新しいルート証明書に遭遇すると、Windows 証明書チェーン検証ソフトウェアは、 Microsoft Update でルート証明書を確認します。見つかった場合は、プログラム内のすべての信頼できるルート証明書のリストを含む最新の証明書信頼リスト (CTL) をダウンロードし、ルート証明書がそこにリストされていることを確認します。次に、指定されたルート証明書をシステムにダウンロードし、Windows の信頼されたルート証明機関ストアにインストールします。

おそらく、Web サーバー上の Go Daddy 認定パスが Go Daddy クラス 2 ではなく Starfield クラス 2 であると認識しているため、間違ったルート証明書をインストールしたことに気付くでしょう。Web サーバーを表示すると、ルート証明書の警告が表示されず、Do Daddy クラス 2 のルート証明書をダウンロードしてインストールし、Starfield のものを削除すると、問題が消えるはずです。

于 2012-02-13T01:57:20.340 に答える