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

通过HTTPS测试Stripe Webhook持续失败:请求超时

解决HTTPS本地ASP.NET MVC5服务的Webhook转发超时问题

我之前也碰到过一模一样的问题!HTTPS本地服务搭配ngrok确实容易踩坑,给你几个亲测有效的解决办法:

1. 用正确的ngrok命令转发HTTPS端点

很多人会误用ngrok http 44368,但本地服务是HTTPS的话,必须让ngrok明确转发到HTTPS端口,命令应该是:

ngrok https 44368

生成的ngrok地址是类似https://xxxx-xxxx-xxxx.ngrok.io的HTTPS域名,直接把这个地址加上你的控制器路径(比如https://xxxx-xxxx-xxxx.ngrok.io/StripeWebhook)填到Stripe的Webhook配置里,不要改成HTTP——Stripe要求Webhook回调地址必须是HTTPS的,用HTTP会直接失败。

2. 确保本地HTTPS证书被信任

ngrok转发到本地HTTPS服务时,如果本地的开发SSL证书没被系统信任,会导致SSL握手失败,最终请求超时。你可以这么做:

  • 先在浏览器访问https://localhost:44368/StripeWebhook,如果浏览器提示“不安全”,说明证书没被信任
  • 对于.NET Framework的ASP.NET MVC5,你可以通过IIS Express的配置界面信任证书:右键点击任务栏的IIS Express图标 → 选择你的网站 → 点击“SSL证书” → 安装证书到“受信任的根证书颁发机构”
  • 或者用管理员权限运行命令行执行:
certutil -addstore -f "Root" "C:\Users\<你的用户名>\Documents\IISExpress\config\certificates\<你的网站证书>.cer"

3. 排查控制器的路由与请求拦截问题

有时候请求已经到了本地,但断点没触发,可能是路由或授权拦截了:

  • 给控制器或方法明确添加路由特性,避免路由匹配错误:
public class StripeWebhookController : BaseController
{
    [HttpPost]
    [AllowAnonymous]
    [Route("StripeWebhook")] // 明确路由规则
    public ActionResult Index()
    {
        // 先加一行日志输出,确认是否进入方法
        System.Diagnostics.Debug.WriteLine("Webhook请求已到达!");
        // ... 原有逻辑
    }
}
  • 检查全局过滤器:如果你的网站有全局授权过滤器(比如[Authorize]),即使方法加了[AllowAnonymous]也可能被拦截,暂时注释掉全局过滤器测试
  • 用Postman给https://localhost:44368/StripeWebhook发一个POST请求,看是否能得到响应,确认本地服务本身是正常的

4. 尝试替代隧道工具localtunnel

如果ngrok还是有适配问题,可以试试localtunnel,它对HTTPS本地服务的支持更友好:

  • 先安装Node.js,然后通过npm安装localtunnel:
npm install -g localtunnel
  • 运行命令转发HTTPS端口:
lt --port 44368 --local-https
  • 复制生成的HTTPS地址(比如https://xxxx.loca.lt),加上控制器路径填到Stripe里即可

最后排查小技巧

打开ngrok的管理界面http://localhost:4040/inspect/http,查看请求的详情:

  • 如果请求的响应状态码是404:说明路由没匹配上,检查控制器路径
  • 如果是500:本地服务抛出异常,检查代码逻辑
  • 如果一直显示“pending”:说明SSL握手失败或者防火墙拦截,回到第二步检查证书

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:09