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

macOS Ventura下.NET 6启用TLS 1.3失败求助

.NET 6在macOS Ventura下无法启用TLS 1.3的问题

我有一段.NET 6的配置代码,在Windows 11上能正常启用TLS 1.3,但放到macOS Ventura中就失效了。配置代码如下:

builder.WebHost.UseKestrel(k =>
{
    k.ConfigureHttpsDefaults(options =>
    {
        options.SslProtocols = SslProtocols.Tls13;
    });
});

在Mac上访问时,Chrome提示err_ssl_version_or_cipher_mismatch,Postman则报错:
Error: write EPROTO 140186045514584:error:1000042e:SSL routines:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION:../../../../src/third_party/boringssl/src/ssl/tls_record.cc:594:SSL alert number 70

我试过执行命令sudo defaults write /Library/Preferences/com.apple.networkd tcp_connect_enable_tls13 1修改Mac的系统配置,但没有效果。有人遇到过类似问题吗?


可行的排查与解决方法

  • 检查OpenSSL版本:.NET 6在macOS上依赖系统OpenSSL,TLS 1.3要求OpenSSL 1.1.1及以上版本。执行openssl version查看当前版本,若低于要求,用Homebrew升级:brew install openssl,之后设置环境变量让.NET找到新版本:export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib(终端临时生效,如需永久生效可添加到~/.zshrc或~/.bash_profile)。

  • 调整TLS协议范围:不要仅强制TLS 1.3,尝试同时启用TLS 1.2和TLS 1.3,验证是否是纯TLS 1.3协商失败:

    builder.WebHost.UseKestrel(k =>
    {
        k.ConfigureHttpsDefaults(options =>
        {
            options.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13;
        });
    });
    
  • 验证证书兼容性:确认使用的SSL证书支持TLS 1.3的密码套件(如TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256)。执行openssl x509 -in 你的证书文件.pem -text -noout查看证书扩展信息,检查是否包含相关密码套件支持。

  • 确保系统配置生效:修改networkd配置后,重启Mac或执行sudo killall -HUP mDNSResponder重置网络服务,让配置生效。另外,也可以尝试重置系统SSL缓存:sudo security flush-keychain -v。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:15:34