2017-03-23 14 views
0

リモートのSharePointサーバーにファイルを保存しようとすると、「要求が中止されました:SSL/TLSセキュアなチャネルを作成できませんでした」というエラーを生成するC#アプリケーションがあります。これはWindows 2012サーバーで発生しますが、アプリケーションはデスクトップのWindowsマシンから正常に実行されます。C#アプリケーションがSSL/TLS接続を確立できません

また、devサーバーから、私はIE11でSharePointサーバーに接続できましたが、TLS 1.1のみが有効です。

アプリケーションでは、すべてのセキュリティプロトコルが有効になっています。

また、アプリケーションがcertificatevalidationcallback関数を呼び出さないことも知っています。

これらの症状が与えられた場合、何が間違っている可能性がありますか?

+0

OpenSslを使用してサーバーに接続し、詳細ログを有効にして、それがWindows 2012 Serverから正常に実行されるかどうかを確認することができます。 – Jinish

+0

かなりの実験の後、私は解決策を見つけましたが、私はまだ困惑しています。ソリューションは、 の使用であることが判明しました。System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11; これは驚くべきことではありません。驚くべきことは、エラーが発生したときに私が使用していたことです。 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12; 私はいずれのプロトコルも許容することに欠点がないと考えました。 –

答えて

0

かなりの実験の後、私は解決策を見つけましたが、私はまだ困惑しています。ソリューションは、使用のために判明しました

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11;

これは驚くべきことではありません。驚くべきことは、エラーが発生したときに私が使用していたことです。

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;

リモートサーバーでどちらが使用されているのかわからなかったため、両方のプロトコルを指定しましたが、いずれのプロトコルも許可していないと考えました。

ここで、2番目のプロトコルを許可すると、アプリケーションがセキュアなチャネルを確立できなくなるのではないかと思います。

+0

私は考えることができる2つの可能性があります。 1つは、Webサーバーが誤動作していて、低いプロトコルをネゴシエートしていないことです。一部のサーバーでは、TLSのバージョンが表示されているときに、下位のサーバーを選択するのではなく、わからないことがあります。 2番目の可能性は、TLS 1.2がネゴシエートされているが、TLS 1.2に対して暗号スイートを選択できなかったことです。たとえば、クライアントは「RC4はTLS 1.1以下で使用できます」と言っているかもしれませんし、サーバーはRC4しかサポートしていません。 – vcsjones

+0

優れた提案:ありがとうございます。 –

関連する問題