次の問題に直面しました:
.NET Framework 4.5.2
で実行されている.netWebアプリケーションがあります。適用は、以下を使用してSalesForceと通信します。
SOAP API
REST API
( https://github.com/developerforce/Force.com-Toolkit-for-NET/ )。SalesForceは、2017年3月4日にTLS1.0暗号化プロトコルを無効にすることを発表しました。TLS1.2に移行するためにいくつかの調整を行う必要がありますか?
.NET4.5のデフォルトのSystem.Net.ServicePointManager.SecurityProtocol
はSecurityProtocolType.Tls|SecurityProtocolType.Ssl3
であり、.NET4.5は最大TLS1.2をサポートします。
System.Net.ServicePointManager.SecurityProtocol
を更新する必要がありますか?もしそうなら、それは他のAPIとの通信に影響を与えることができますか?
私はどんな助けにも感謝します。
少し検索した後、少し前に古いプロトコルを使用してセールスフォースAPIにログオンしていることを警告するログにいくつかの問題がありました。セキュリティプロトコルを初期化します。
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
これにより、すべての接続でプログラム内でtls1.2が使用されるようになります。一部の呼び出しがデフォルトの構成でtls1.0を使用しようとしているように見えることがありました...ただし、変更する必要がないことを確認するには、APIログ履歴をダウンロードして、tls1.2未満で接続が試行されているかどうかを確認してください。その場合、tls1.2へのアップグレードを強制します
次のレジストリキーを追加して、.NET4.5以降でTLS1.2を強制することもできます。 System.Net.ServicePointManager.SecurityProtocolがアプリケーション内で明確に定義されている場合にのみ、これらは上書きされます。
次の2つのレジストリキーで「SchUseStrongCrypto」DWORD値を1に設定/作成します:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319およびHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319