You need to enable JavaScript to run this app. Azure WebApp发送邮件使用TLS1.0,如何强制启用TLS1.2?
优惠活动
大模型
产品
解决方案
定价
更多

Azure WebApp发送邮件使用TLS1.0,如何强制启用TLS1.2?

解决Azure WebApp中PowerShell发送邮件强制使用TLS 1.2的方案

问题核心原因

Azure WebApp的TLS配置仅作用于站点的HTTP/HTTPS请求,不会自动继承到应用触发的PowerShell沙箱会话中,因此你在页面配置的最低TLS1.2限制对PowerShell执行的Send-MailMessage命令不生效,而本地PowerShell继承了操作系统的强加密配置所以默认走TLS1.2。

操作步骤

  • 第一步:在你触发的.ps1脚本开头,显式指定当前会话的TLS协议版本,添加如下代码:
# 强制启用TLS 1.2和TLS 1.3,禁用低版本协议
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13

该配置优先级高于系统默认配置,仅对当前PowerShell会话生效,不会影响站点其他业务。

  • 第二步:检查Send-MailMessage命令的参数,必须添加-UseSsl参数,否则即使指定了TLS版本也会触发明文传输降级,完整参考示例如下:
# 发送邮件完整示例
Send-MailMessage -From "发件人邮箱" `
-To "收件人邮箱" `
-Subject "邮件主题" `
-Body "邮件正文" `
-SmtpServer "你的SMTP服务器地址" `
-Port 587 `
-UseSsl `
-Credential $smtpCredential
  • 第三步:补充.NET应用配置,在你的.NET应用Web.config文件的<configuration>节点下添加如下配置,确保.NET层的所有网络请求默认使用强加密协议:
<runtime>
  <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false" />
</runtime>
  • 第四步:调整WebApp基础配置,将「仅HTTPS」开关调整为开启状态,避免低版本HTTP请求导致的协议降级风险,原有的.NET 4.8、32位运行平台、最低TLS1.2配置保持不变即可。

验证方式

在.ps1脚本中添加日志输出代码,触发脚本后在WebApp的Kudu日志控制台查看输出,确认返回值包含Tls12即代表配置生效:

Write-Output "当前生效的安全协议: $([Net.ServicePointManager]::SecurityProtocol)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 15:36:04