9

我需要在开发中测试与本地 Rails 脚本/服务器实例的 HTTPS 连接,它似乎不受支持,而且我无法通过 Google 搜索任何解决方案。

从客户端的角度来看,它是这样的:

ted@teflon-ted ~/Downloads[master]$ grep tedslaptop /etc/hosts
127.0.0.1 api.tedslaptop.com
ted@teflon-ted ~/Downloads[master]$ /usr/bin/curl https://api.tedslaptop.com:3000/
curl: (35) 连接到 api.tedslaptop.com:3000 的未知 SSL 协议错误

这是我在服务器上看到的:

$脚本/服务器
=> 引导 Mongrel(使用 'script/server webrick' 强制 WEBrick)
=> Rails 2.2.2 应用程序从 http://0.0.0.0:3000 开始
=> 使用 -d 调用以分离
=> Ctrl-C 关闭服务器
** 在 0.0.0.0:3000 开始 Mongrel 监听
** 使用开发环境启动 Rails...
** 导轨已加载。
** 加载任何特定于 Rails 的 GemPlugins
** 信号准备就绪。期限 => 停止。USR2 => 重启。INT => 停止(不重新启动)。
** Rails 信号已注册。HUP => 重新加载(无需重新启动)。它可能无法正常工作。
** Mongrel 1.1.5 在 0.0.0.0:3000 可用
** 使用 CTRL-C 停止。
2009 年 1 月 16 日星期五 13:06:50 -0500:HTTP 解析错误,格式错误的请求 (127.0.0.1):#
2009 年 1 月 16 日星期五 13:06:50 -0500:请求数据:“\200d\001\003\001\000K\000\000\000\020\000\0009\000\0008\000\0005\000\000 \026\000\000\023\000\000\n\a\000?\0003\000\0002\000\000/\003\000\200\000\000\005\000\000\004\001 \000\200\000\000\025\000\000\022\000\000\t\006\000@\000\000\024\000\000\021\000\000\b\000\000\ 006\004\000\200\000\000\003\002\000\200xa\377\\?wEM??/\235F\020\232"
---
参数:{}
---
4

1 回答 1

14

HTTPS 是在 Rails 框架之外处理的。因此,您不能直接对其进行测试。Rails 应用程序提供的功能在 HTTPS 上应该与在未加密的 HTTP 上完全相同。

script/server 使用 Mongrel 来满足您的请求。Mongrel 不直接支持 SSL/HTTPS。

如果您真的想测试 HTTPS 功能,您必须设置支持 SSL/HTTPS 的 Apache(或其他网络服务器)(使用mod_ssl),并将其配置为运行您的 Rails 应用程序(使用mod_railsmod_proxy)。

于 2009-01-17T11:11:37.617 回答