ASP.NET Core 6 Web API部署Nginx时第三方API SSL连接失败排查
针对你遇到的问题,需要重点查阅Nginx文档以下几个部分:
反向代理的SSL/TLS相关指令
重点关注proxy_ssl_certificate、proxy_ssl_certificate_key指令,确认是否正确配置了第三方API要求的客户端证书及密钥,这是第二次调用必须的验证要素。同时检查proxy_ssl_protocols、proxy_ssl_ciphers是否与第三方API支持的SSL协议、加密套件匹配,协议不兼容是连接重置的常见原因。另外proxy_ssl_verify、proxy_ssl_verify_depth的配置也需确认,错误的证书校验逻辑可能导致握手失败。连接超时与HTTP版本配置
查看proxy_connect_timeout、proxy_send_timeout、proxy_read_timeout的设置值,若超时时间过短,可能在请求传输过程中触发连接重置。同时确认proxy_http_version是否设置为1.1,HTTP/1.0的连接模式可能无法适配第三方API的要求。请求头传递配置
检查proxy_set_header指令,确保Authorization头(携带access token)、Host头等关键请求头被完整、正确地传递给第三方API。Nginx默认可能会修改部分请求头,若关键头丢失或被篡改,会导致请求被拒绝或连接异常。日志调试相关配置
重点看error_log的级别配置,将日志级别临时调整为debug后,可获取Nginx与第三方API交互的详细SSL握手、请求传输日志,这是定位连接重置具体原因的核心依据。
内容的提问来源于stack exchange,提问作者Radek Sedlář

