結論
微軟以這篇文章 (https://docs.microsoft.com/zh-tw/dotnet/framework/network-programming/tls) 說明,更新至 4.7 以上最省事。
緣由
一個以 .NET Framework 4 為目標的程式,突然被回報有問題。原來是呼叫 API 的目標用上了 SSL (終於),想說改設定即可。結果仍有問題,就得來研究了。Postman 沒問題,那就好玩了。研究了一下,看來由於安全議題一直進步,導致 .NET Framework 4 當時的預設值跟不上時代。還好有得處理,不用大幅更新程式目標。
解決方案
以 .NET Framework 3.5 至 4.5.2 且非 WCF 為例,使用文章中的 .REG 內容來修改登錄碼。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
留言
張貼留言
歡迎留言給我們