【问题标题】:Redirect outgoing HTTPS request to an HTTP fake service?将传出的 HTTPS 请求重定向到 HTTP 虚假服务?
【发布时间】:2012-10-19 04:16:21
【问题描述】:

我的标题可能过于具体 - 我无法提出问题,因为我没有经常处理网络管理,尤其是 SSL / HTTPS。换句话说,“你为什么不做……”的答案就像是,“我对……了解不多。”

我正在测试,被测系统 (SUT) 是一个使用 https://graph.facebook.com 调用 Facebook API 的 Web 服务。

我在远程机器上设置了一个测试服务器,它将向http://graph.facebook.com 提供页面。我可以使用 SUT 服务器上的主机文件将请求重定向到 http://graph.facebook.com 到测试服务器。当我输入以下内容时,这工作正常:

curl http://graph.facebook.com

测试服务器收到请求,并返回预期的页面。

但是,如前所述,SUT 不使用 HTTP 站点,而是使用 Facebook API 的 HTTPS 站点(自然而然)。有什么方法可以拦截传出请求并将其重定向到我在另一个站点上运行的 HTTP 服务?我希望能够输入:

curl https://graph.facebook.com

并将其重定向到我在测试服务器上运行的虚假 Facebook 服务。我可以在两端配置服务器。

如果这很困难,我可能还想提出一个功能请求,以便能够更改 Facebook API 请求的 URL。但是,我认为开发人员正在使用预先存在的 Facebook API 模块,这可能不是直截了当的。 (好吧,我很好奇并检查了......快速调查表明该 API 支持处理实际 HTTPS 请求的代码的数据注入,因此他必须实现自己的接口版本,以便他可以传入一个可配置的 URL,我可以从代码外部设置 - 但除非真的有必要,否则我仍然不想分散他的注意力)。

如果相关的话,我在端口 80 上使用asis-server 来伪造 Facebook 响应。

【问题讨论】:

    标签: web-services testing https mocking


    【解决方案1】:

    我们最终使用的解决方案是测试服务器上的一个服务,它拦截 HTTPS 请求并将它们重定向到 HTTP 服务。我们的运维人员为此使用了nginx

    我们仍然不确定这是否可以作为 SUT 的模拟 - 这取决于 SUT 是在验证证书信息还是忽略它。我仍然可能需要要求开发人员实现一个功能来支持模拟。

    【讨论】:

    • 好的,我接受我自己的回答。 . .风滚草之类的:-p 我想我需要学习写出更好的问题。
    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    相关资源
    最近更新 更多