【发布时间】:2014-10-14 06:37:48
【问题描述】:
我运行一个本地开发网络服务器来测试代码更改。
通常我必须使用只能安全连接到另一个域的远程服务来测试我的本地更改。
例如https://external1.com 只会与 https://someOtherDomain.com 对话,但我必须测试与 https://external1.com 的新代码更改的集成
虽然我已经配置了一个可以正常工作的设置,但它看起来很复杂,并且需要一些时间才能正确设置。在我看来,许多开发人员都想做同样的事情,所以我的问题是:
有没有一种简单的方法可以将我的本地网络服务器代理为 https://someOtherDomain.com ?
编辑:所以也许应该这样问 - 是否存在命令行或 GUI 工具,您可以传递本地端口和域名,并通过 https://someOtherDomain.com 安全地为您的本地端口提供服务 - 没有配置或 SSL需要创建证书吗?当然,如果需要可以通过配置替换 SSL 证书会很好,但默认情况下,它会自动工作,通过使用预先确定的 SSL 证书。即使我使用的是 Apache,我也在寻找一个实际上不使用 Apache 的解决方案——它使用了其他东西。为什么?因为我希望这个解决方案能够与我们团队中的其他人使用的任何其他网络服务器很好地配合——因为我们都运行不同的堆栈,我希望能够让我们中的任何人安全地为我们的网站提供服务,而无需配置每个单独的网络服务器。
这是我当前的设置,用于获取本地网络服务器并在 https://www.someOtherDomain.com 上提供服务
为了在本地进行测试,我一直在:
-
编辑我的主机文件,并添加一个条目以使 www.someOtherDomain.com 指向我的本地计算机,这当然正在运行我的开发服务器。这使得我的本地站点现在可以在
http://www.someOtherDomain.com127.0.0.1 www.someOtherDomain.com -
使用 SSL 证书设置和 mod_proxy 运行 Apache 以将所有 https 请求重定向到我的本地 http 服务器,从而使我的网站在
https://www.someOtherDomain.com可用。这是我的 Apache 配置:ServerName www.someOtherDomain.com <Location /balancer-manager> SetHandler balancer-manager </Location> ProxyPass /balancer-manager ! ProxyPass / balancer://mycluster/ <Proxy balancer://mycluster> BalancerMember http://localhost route=1 </Proxy> ProxyPass / balancer://mycluster ProxyPassReverse / balancer://mycluster SSLHonorCipherOrder On SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite RC4-SHA:HIGH:!ADH # Rewrite all http requests to https RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
我在 mac 上运行它,但我也对 linux 的解决方案感兴趣。我见过各种中间人代理,听起来他们可以使用一些配置......但我正在寻找安装和运行非常简单的东西 - 不仅仅是为了我,而是我可以告诉团队成员的东西也一样,因为我们将来可能都必须这样做。
重要提示:我的本地网络服务器没有在端口 80 上运行,尽管我在上面的示例中这样表示,以保持简单。我知道 Mac 上的 80 端口有点特别,但我对在所有端口上都能正常工作的解决方案感到非常满意但端口 80。
【问题讨论】:
-
我认为Squid 经常用于这类事情。
-
如果 external1.com 只会与真实的 someOtherDomain.com 对话,那么在您的开发机器上使用代理做任何事情都对您没有帮助。如果 external1.com 会与您的开发站对话,只要它声称是 someOtherDomain.com,您就不需要代理,您只需为您的开发 apache 设置正确的名称并将其放入您的
hosts文件中。如果外部只与真实域对话,则需要在该主机上设置某种代理系统。但在那种情况下,我更愿意让外部管理员给我一些开发 IP 的访问权限。 -
感谢大家的反馈....也许我的术语在代理的某些用途中是错误的,但从浏览器的角度来看,我想将
http://localhost映射到https://someOtherDomain.com,所以 DNS 条目 和 SSL 层。我有什么作品 - 似乎应该有一种更简单/交钥匙的方式来做到这一点,因为我认为很多开发人员都想这样做。我的用例是将我的本地更改与其他暂存服务器集成,以查看我的代码是否有效,而无需构建 10 个其他项目。谢谢! -
为什么不使用具有“someOtherDomain.com”作为本地应用程序服务器名的虚拟主机而不是“localhost”?那么只需要修改hosts,不需要proxy。
-
嘿...谢谢你的信息!最终,我希望找到除 Apache 之外的其他东西来执行此操作 - 因为我不希望每个人也必须创建/设置自己的 SSL 证书。使用自签名证书很好,但没有人应该创建它。我很想找到一个工具,你可以启动并传递一个本地端口和一个域名,它可以通过someOtherDomain.com 安全地为你的本地端口提供服务——不需要创建配置或 SSL 证书。我所拥有的作品 - 我只是认为人们设置它有点痛苦!谢谢!
标签: apache ssl proxy webserver