1. ホーム
  2. .net

[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。

2022-03-01 19:49:24

質問

SSL証明書を持つPHPのウェブサービスを利用する必要があります。.net 3.5のクラスライブラリは、Visualstudio 2010の「Add Service references」でウェブサービスを参照しています(WCFでしょうか?)

ウェブサービスのmainメソッドを呼び出すと、次のようなメッセージが表示されます。

権限 '{base_url_of_WS}' を持つ SSL/TLS 用の安全なチャネルを確立できませんでした。

などなど、いろいろ試してみました。

System.Net.ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); 
 public bool CheckValidationResult(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        return true;
    }

しかし、それは動作しません。また、私は自分のマシンに証明書をインストールしています。

*サービスリファレンスの追加」でwsdlの場所を使用すると、同じエラーが発生します。これを試す前は、静的なwsdlで作業していました。

解決方法は?

はい、信頼されていない証明書が原因です。 ブラウザでウェブサービスを開き、ブラウザのツールを使って、ウェブサービスの証明書パスを調べてください。 ウェブサービスを呼び出すコンピューターに、1つまたは複数の中間証明書をインストールする必要がある場合があります。 ブラウザで「Certificate errors」と表示され、さらに調査すると「Install Certificate」というオプションが表示されることがありますが、これが不足している証明書である可能性があります。

私が特に問題にしたのは、ジオトラストのGeotrust DV SSL CA中間証明書が、2010年7月にルートサーバーをアップグレードした後に紛失したことだった。 https://knowledge.geotrust.com/support/knowledge-base/index?page=content&id=AR1422

( 2020年アップデート デッドリンクはここに保存されます。 https://web.archive.org/web/20140724085537/https://knowledge.geotrust.com/support/knowledge-base/index?page=content&id=AR1422 )