Bra*_*rks 6 apache ssl proxy webserver
我运行本地开发Web服务器来测试代码更改.
通常,我必须使用只能安全连接到另一个域的远程服务来测试我的本地更改.
例如,https://external1.com
只会https://someOtherDomain.com
与之交谈,但我必须测试我的新代码更改的集成https://external1.com
虽然我已经配置了一个有效的设置,但它似乎很复杂,并且需要一点时间才能正确设置.在我看来,很多开发人员都想做同样的事情,所以我的问题是:
是否有一种简单的方法可以将我的本地网络服务器代理为https://someOtherDomain.com?
这是我目前使用本地网络服务器并提供服务的设置 https://www.someOtherDomain.com
为了在本地测试,我一直在:
编辑我的主机文件,并添加一个条目,使www.someOtherDomain.com指向我的本地机器,当然这是运行我的开发服务器.这使得我的本地站点现在可用http://www.someOtherDomain.com
127.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}
Run Code Online (Sandbox Code Playgroud)我在mac上运行它,但我也对linux的解决方案感兴趣.我已经看到中间代理中的各种Man听起来像是在使用某些配置...但我正在寻找一些非常简单的安装和运行 - 不仅仅是为了我,而是我能告诉团队成员的事情因为我们将来可能都需要做很多事情.
重要说明:我的本地网络服务器没有在端口80上运行,尽管我在上面的示例中已经这样说,以保持简单.我理解mac上的端口80有点特殊,但我很满意所有端口上工作正常但端口80的解决方案.
我认为mitmproxy可以为你做到这一点,至少在 Linux 和 os-x 上。我自己没有尝试过,但这个问题似乎表明了它是如何完成的。但这仍然不是一个简单的程序。
然而,我还使用过其他方法:
第一个是最简单的,为develop.mydomain.com 创建一个指向 127.0.0.1 的 DNS 条目,并为您控制 DNS 的(子)域创建一个证书。将该证书传播给所有开发人员。他们仍然需要自己设置 SSL,但不再需要生成证书。它还有一个额外的好处,即每个人都在https://develop.mydomain.com上进行开发,这允许他们共享配置。为了获得奖励积分,请为 *.develop.mydomain.com 创建一个 DNS 条目和一个通配符证书,您的开发人员可以拥有不同的站点(例如https://project1.develop.mydomain.com和https://project2.develop.mydomain .com)在本地机器上。(与互联网有时告诉您的相反,只要证书对所有指定主机都有效,基于名称的虚拟主机就可以与 SSL 配合使用)。由于每个人的域名都是相同的,您可以考虑获取有效的通配符证书来消除警告。
与下面的解决方案不同,该解决方案甚至可以在办公网络之外工作,当人们在家或在客户那里工作时,这可能是相关的。
在此基础上,您还可以为开发人员计算机的内部 IP 创建 DNS 条目(如果这些条目是固定的)。这确实增加了一些工作,但这意味着本地网络中的其他人可以访问开发人员正在进行的工作,这对于演示、移动设备上的测试等非常方便。
另一种选择是配置一台机器来代理所有开发人员。在 *.develop.mydomain.com 等内容上创建一个指向此盒子内部 IP 的 DNS 条目、匹配的通配符证书,并使用正确的证书配置该盒子一次。现在,您可以为每个代理服务器创建一个虚拟主机,并且所有站点都可以通过本地网络访问,但它确实要求开发人员具有固定的 IP 地址(或通过 DHCP 添加到 DNS 的主机名)。结合 apache 在其配置中包含目录中的所有文件的能力,使得创建基于模板添加新站点的脚本变得很简单。它所要做的就是根据请求的子域和目标写入一个新文件并重新加载 apache 配置。这意味着简单的 PHP 脚本之类的东西就可以完成您希望应用程序执行的操作。
归档时间: |
|
查看次数: |
1567 次 |
最近记录: |