You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2016调用Firebase .NET SDK发消息出现SSL/TLS错误如何解决

问题原因

该问题并非Firebase Admin SDK不支持高版本TLS,而是.NET Framework 4.6.1的默认安全协议配置逻辑导致:

  • .NET Framework 4.6.1原生已支持TLS 1.2,但默认情况下出站HTTP请求的安全协议继承操作系统默认配置,不会主动优先使用TLS 1.2
  • Google Firebase全系列API早已停止对TLS 1.0及更低版本协议的支持,必须使用TLS 1.2及以上版本才能完成通信
  • 当你禁用服务器TLS 1.0后,代码未显式指定使用高版本TLS,握手阶段客户端和服务端无法匹配到共同支持的协议/密码套件,就会抛出对应的通信错误

解决方案

你可以通过以下两种方案强制启用TLS 1.2,无需保留TLS 1.0或弱CBC密码套件:

方案1:代码层面修改

在调用Firebase相关方法前的逻辑入口处(如应用全局启动事件、sendMessage方法开头)添加如下VB.NET代码:

Imports System.Net

' 强制指定支持的TLS版本,可根据需求调整是否保留低版本协议
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls

该配置会对当前应用所有后续出站HTTP请求生效,优先使用TLS 1.2和Google服务完成握手。

方案2:配置文件层面修改(无需改动业务代码)

直接修改应用对应的配置文件:

  • 若为Web应用,修改web.config
  • 若为桌面/控制台应用,修改app.config

在<configuration>根节点下添加如下配置:

<runtime>
  <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false;Switch.System.Net.DontEnableSystemDefaultTlsVersions=false" />
</runtime>
<system.web>
  <httpRuntime targetFramework="4.6.1" />
</system.web>

该配置会强制.NET Framework 4.6.1启用强加密逻辑,遵循操作系统的TLS版本优先级,自动优先选择TLS 1.2发起请求。

修改完成后重启应用即可生效。

内容的提问来源于stack exchange,提问作者Gary Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:30:04