此问题在此处已有答案:
Update .NET web service to use TLS 1.2(8个答案)
上个月关门了。
我的c# .NET代码已经编译并针对.NET 4.8。我的Windows .NET Web服务器运行.NET 4.8,但我在调用AWS的API时继续收到来自AWS的消息,说操作是非法的,我需要将我的TLS调用更新为1.2。下面是我收到的确切错误消息。
“拒绝访问”,错误消息“呼叫者未被授权通过TLS 1.0/1.1调用此服务。"。
报告的用户代理是:
“aws-sdk-dotnet-45/3.7.301.2 aws-sdk-dotnet-core/3.7.300.9 .NET_SDK/4.0 .NET_Framework/4.0 OS/Microsoft_Windows_NT_10.0.17763.0 ClientSync”
我不确定这是否是.NET 4.8的正确用户代理,它肯定看起来不是这样,这让我问,为什么我的代码运行在.NET 4.0而不是.NET 4.8下?
我已经通过推荐的编辑注册表来配置我的.NET环境默认为TLS 1.2,它不工作。
1条答案
按热度按时间plicqrtu1#
看起来你有一个旧的代码运行,而不是你可能认为的.NET 4.8。
根据版本组合,TLS版本选择会发生变化。
对于较新的.NET版本,它依赖于操作系统来做决定,并且大多数情况下都是有效的。但是较旧的版本(就像我假设你有的那个)确实选择了TLS,并且总是选择旧的TLS版本。
本页说明如何设置操作系统注册表以确保使用TLS 1.2:
https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls#systemdefaulttlsversions
您可以将其保存为
.reg
文件,并在计算机上运行(作为管理员)以自动设置它:字符串
来源:相同的链接,只是为了方便复制到这里。