tls 握手失败可能来自端口不可达、系统时间错误、协议或密码套件不兼容、证书过期、主机名不匹配以及中间证书缺失。排查时应按“tcp 端口、tls 详细错误、证书链”分层验证,避免直接关闭证书校验或长期使用忽略错误参数。
先确认服务端口能建立连接
在 PowerShell 运行 Test-NetConnection 目标域名 -Port 443,若服务使用其他 TLS 端口就替换端口号。只有 TcpTestSucceeded : True 时,才说明客户端能到达目标 TCP 端口;它不能证明 TLS 已成功。截图以 4438 端口演示成功结果,实际排查 HTTPS 通常使用 443。

用 curl.exe -v 读取握手错误
运行 curl.exe -v https://目标域名/,观察连接地址、TLS 协商和证书校验错误。Windows 的 Schannel 若无法检查吊销状态,会显示对应十六进制错误;名称不匹配、过期和协议失败会有不同提示。不要把 -k 当作修复,它只会跳过校验并掩盖风险。

在证书路径页核对信任链
在浏览器查看目标站点证书,打开“证书路径”页,逐级确认服务器证书、中间 CA 和根 CA 是否完整,并查看底部状态。截图显示了 Windows 证书查看器中的根证书、中间证书和“证书正常”状态;若某一级出现警告,再导出公开证书并用 certutil -verify -urlfetch server.cer 验证。












