AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 4930
In Process
Tim Wardle
Tim Wardle
Asked: 2009-05-06 10:51:42 +0800 CST2009-05-06 10:51:42 +0800 CST 2009-05-06 10:51:42 +0800 CST

如何将 Apache 配置为使用 HTTPS 进行外部访问,而使用 HTTP 进行内部访问?

  • 772

我有两台服务器,一台是可在我们公司的本地网络内部访问的开发服务器,另一台是面向公众的 Web 服务器。开发服务器托管了几个我们用来在内部管理项目的工具,但现在我们也需要在外部访问它们,同时保持安全性。

我在外部服务器上设置了 mod_proxy,使用 ProxyPass 和 ProxyPassReverse 指令将外部请求映射到内部服务器。我还在这些外部虚拟主机上设置了身份验证,为外部访问提供安全性。我还需要使用 SSL 进行外部访问,但理想情况下,我更愿意让内部工具通过纯 HTTP 访问,供内部网中的人使用。

是否有可能实现这种行为,如果可以,我应该使用哪些指令和 Apache 模块以及需要在哪些服务器上设置它们?

apache-2.2 mod-proxy mod-ssl
  • 4 4 个回答
  • 3002 Views

4 个回答

  • Voted
  1. Michael Gorsuch
    2009-05-06T11:07:48+08:002009-05-06T11:07:48+08:00

    我将假设您确实接受了公众的 HTTP 连接,但您执行标准 HTTP 重定向以强制它们使用 HTTPS。

    如果是这种情况,那么如果您是内部网络的一部分,则可以将 HTTP 指令更改为不重定向。

    为此,您需要使用 Apache 的mod_rewrite并在 REMOTE_ADDR 上进行过滤。本质上,您希望重定向与您的网络不匹配的所有内容。

    另一种选择,可能是更安全的选择,就是让您的内部用户使用与公共地址不同的服务地址。让他们连接到 myservice.mydomain.local 而不是 myservice.mydomain.com。

    • 8
  2. Darryl Hein
    2009-05-06T11:01:10+08:002009-05-06T11:01:10+08:00

    您能否在 Apache 配置中创建 2 个不同的虚拟主机,每个都响应不同的 IP,尽管仍然使用相同的文档根目录?在您的路由器上,让它以 192.168.1.1 响应 example.com,而在外部它将以 342.434.564.23 响应。或者让每个人在办公室时使用不同的地址 (internal.example.com)。

    • 1
  3. spoulson
    2009-05-06T10:59:28+08:002009-05-06T10:59:28+08:00

    如果您使用的是 Linux,请研究iptables防火墙。如果是 Windows,您可以使用 IPSec 策略来模拟类似的防火墙规则。

    基本上,您将根据源 IP 子网分配规则。如果连接来自您的内部网络,请阻止 HTTPS。否则,阻止 HTTP。

    • 0
  4. Adam Gibbins
    2009-05-06T10:54:58+08:002009-05-06T10:54:58+08:00

    您最好使用防火墙规则来限制这一点。

    我不认为 Apache 具有实现此功能的功能,即使这样做也会产生开销。防火墙是为这样的事情设计的,因此会更合适。我假设你有一个外部防火墙(我希望你有),你应该只允许这台机器的端口 443 并在外部阻止端口 80。

    如果你真的想使用 Apache,你可以使用两台虚拟主机,一台监听内部 IP,另一台监听外部 IP。然而,这会使配置加倍,因此我不推荐它,因为维护起来会很痛苦。

    编辑:抱歉,Apache 可以通过 mod_rewrite 执行此操作,但它会增加请求的开销,并且使用防火墙仍然更合适。也就是说,使用 mod_rewrite 您可以将人们从 http 重定向到 https,如果人们不断尝试访问 http,这可能会很方便。

    • -1

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve