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

通过SSH隧道转发HTTPS/curl时,如何正确校验SSL证书?

解决SSH隧道后SSL证书验证不匹配问题

方法1:使用curl的--resolve参数(推荐单命令场景)

直接在curl命令中指定目标域名与本地端口的映射,让curl用远程服务器的域名完成证书验证,实际连接到本地隧道端口:

curl --cacert CA.pem --resolve remote_server:local_port:127.0.0.1 https://remote_server:local_port
  • 原理:--resolve参数强制curl将remote_server:local_port解析到127.0.0.1,请求时会用remote_server作为SNI(服务器名称指示),与证书中的域名匹配,同时实际连接本地的SSH隧道端口。
  • 优势:无需修改系统配置,单命令即可实现,适合临时或少量请求场景。

方法2:修改本地hosts文件+自定义域名映射(适合长期使用)

如果需要频繁访问,可以给每个远程服务器配置本地域名映射:

  1. 编辑本地hosts文件(Windows路径:C:\Windows\System32\drivers\etc\hosts;Linux/macOS路径:/etc/hosts),添加对应条目:
    127.0.0.1 remote_server1
    127.0.0.1 remote_server2
    
    其中remote_server1、remote_server2为你实际的远程服务器域名。
  2. 保持原有SSH隧道命令不变,例如:
    ssh -fN -L 8443:remote_server1:443 user@gateway
    ssh -fN -L 8444:remote_server2:443 user@gateway
    
  3. 访问时使用本地映射的域名+对应端口:
    curl --cacert CA.pem https://remote_server1:8443
    curl --cacert CA.pem https://remote_server2:8444
    
  • 原理:hosts文件让系统把remote_server1这类域名解析到本地IP,curl访问时会用该域名验证证书,同时连接到对应本地端口的SSH隧道。

方法3:用Nginx做反向代理(适合多隧道批量管理)

如果有大量SSH隧道需要管理,可以用Nginx做中间层自动处理SNI和证书验证:

  1. 安装Nginx后,在配置文件中添加多个server块,示例配置:
    server {
        listen 8443;
        server_name remote_server1.local;
    
        location / {
            proxy_pass https://localhost:8443;
            proxy_ssl_name remote_server1;
            proxy_ssl_trusted_certificate /path/to/CA.pem;
            proxy_ssl_verify on;
        }
    }
    
    server {
        listen 8444;
        server_name remote_server2.local;
    
        location / {
            proxy_pass https://localhost:8444;
            proxy_ssl_name remote_server2;
            proxy_ssl_trusted_certificate /path/to/CA.pem;
            proxy_ssl_verify on;
        }
    }
    
  2. 在hosts文件中添加remote_server1.local、remote_server2.local到127.0.0.1的映射。
  3. 重启Nginx后,访问https://remote_server1.local:8443即可,curl会自动用正确的域名完成证书验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:57:27