配置ASP.NET Core应用HTTPS/TLS时遇SSL_ERROR_RX_RECORD_TOO_LONG错误
这个错误我之前帮不少开发者排查过,大概率是HTTPS端口配置不匹配或者HTTP/HTTPS协议混用导致的,咱们一步步来解决:
先检查端口绑定是否正确
打开项目根目录下的Properties/launchSettings.json,找到你的项目配置段,确认applicationUrl同时包含HTTPS和HTTP的端点,并且HTTPS端口是你用的54321:"profiles": { "YourProjectName": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:54321;http://localhost:54320", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } }如果这里只有HTTP的地址,那浏览器用HTTPS访问肯定会报错,补上HTTPS的端口就行。
确认Kestrel的HTTPS配置
如果你手动修改过Kestrel的配置,要确保它监听54321端口时启用了HTTPS。以.NET 6+的Program.cs为例:var builder = WebApplication.CreateBuilder(args); // 配置Kestrel监听HTTPS端口 builder.WebHost.ConfigureKestrel(serverOptions => { // 监听本地54321端口并启用HTTPS serverOptions.ListenLocalhost(54321, opt => opt.UseHttps()); }); // 其他服务配置... var app = builder.Build(); // 中间件配置... app.Run();要是用了自定义证书,还要在
UseHttps里指定证书路径和密码,别漏了。检查访问URL的协议
别犯低级错误!确保你在浏览器里输入的是https://localhost:54321,而不是http://localhost:54321——如果端口只绑定了HTTPS,用HTTP访问就会触发这个“记录过长”的错误,反过来也一样。修复开发证书问题
开发环境下的自签名证书如果未信任或者损坏,也可能导致连接异常。打开命令行执行以下命令重置证书:dotnet dev-certs https --clean dotnet dev-certs https --trust执行完后重启你的应用,再试试访问。
核对项目属性的SSL设置
你已经勾选了“Enable SSL”,但要确认项目属性里的SSL端口是不是54321,这个值要和launchSettings里的sslPort以及applicationUrl里的HTTPS端口保持一致,不一致的话手动改成相同的端口号。
内容的提问来源于stack exchange,提问作者user9530048

