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

如何通过ngrok企业版实现本地Rails应用HTTPS自定义域名无证书异常访问?

解决方法

1. 停止当前运行的服务

先关闭正在运行的Rails服务器和ngrok进程,避免端口占用冲突。

2. 以普通HTTP模式启动Rails应用

无需在本地启用SSL,ngrok会负责外部访问的HTTPS加密,本地Rails与ngrok的通信在机器内部完成,无需额外加密(若有本地安全需求可后续调整,先解决证书错误核心问题)。

执行命令:

rails s -b localhost:3000

若需要允许所有IP访问以便测试,可改用:

rails s -b 0.0.0.0:3000

3. 用ngrok HTTP隧道转发到Rails端口

使用ngrok http命令并指定自定义域名,ngrok会自动为该域名提供合法的SSL证书,外部访问时不会出现证书错误。

执行命令:

ngrok http --domain=my.domain.com 3000

启动完成后,外部用户访问https://my.domain.com时,ngrok会处理HTTPS连接并将请求转发到本地Rails的3000端口(HTTP),浏览器会识别到ngrok提供的合法证书,不会再触发NET::ERR_CERT_COMMON_NAME_INVALID错误。

错误原因说明

你之前使用ngrok tls隧道时,它会将外部的TLS流量直接转发到本地的TLS服务(Rails 3000端口,使用localhost自签证书)。此时浏览器访问my.domain.com,虽然ngrok建立了HTTPS连接,但本地Rails返回的证书域名是localhost,与访问的my.domain.com不匹配,因此浏览器抛出证书域名不匹配的错误。

额外说明(若需本地Rails启用HTTPS)

如果一定要让本地Rails运行在HTTPS下,你需要获取与my.domain.com匹配的证书,但该证书由ngrok管理,无法获取私钥。因此最合理的方案仍是让ngrok处理外部HTTPS,内部用HTTP通信,这也是ngrok最常用的配置方式,既简单又能保证外部访问的安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:36:02