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 / 问题 / 432743
Accepted
Tom Harrison Jr
Tom Harrison Jr
Asked: 2012-09-28 13:16:50 +0800 CST2012-09-28 13:16:50 +0800 CST 2012-09-28 13:16:50 +0800 CST

为 AWS Elastic Load Balancer (ELB) 背后的资源提供静态 IP

  • 772

我需要一个静态 IP 地址来处理来自已知来源(合作伙伴)的 SSL 流量。IP 需要静态的原因是合作伙伴需要这样做以保持 PCI 合规性。

我们的服务器位于 AWS 弹性负载均衡器 (ELB) 后面,它无法提供静态 IP 地址;这里有很多关于这个的话题。

我的想法是在 EC2 中创建一个实例,其唯一目的是成为一个拥有自己 IP 地址的反向代理服务器;接受 HTTPS 请求并将它们转发到负载均衡器。

有更好的解决方案吗?

apache-2.2
  • 2 2 个回答
  • 2620 Views

2 个回答

  • Voted
  1. Best Answer
    Tom Harrison Jr
    2012-10-03T06:54:16+08:002012-10-03T06:54:16+08:00

    最后,我实现了小伙伴的需求,如下:

    • 在 AWS 中启动一个实例
    • 为其分配并附加一个弹性 IP (EIP)
    • 安装的阿帕奇
    • (在我们的例子中,安装了我们的 SSL 证书)
    • 将 Apache 配置为反向代理服务器,转发到指向我们 ELB 的 CNAME

    下面是 Apache 虚拟主机配置示例。我关闭 NameVirtualHost并指定了我们 EIP 的地址。我还禁用了默认主机。如果合作伙伴需要,我将添加一个<Directory>块,该块只接受来自其IP 范围的请求。

    <IfModule mod_ssl.c>
    # Catch non-SSL requests and redirect to SSL
    <VirtualHost 12.34.567.890:80>
      ServerName our-static-ip-a-record.example.com
      Redirect / https://our-elb-cname.example.com       
    </VirtualHost>
    # Handle SSL requests on the static IP
    <VirtualHost 12.34.567.890:443>
      ServerAdmin [email protected]
      ServerName our-static-ip-a-record.example.com
    
      # SSL Configuration
      SSLEngine on
      SSLProxyEngine on
      SSLProxyCACertificateFile /etc/apache2/ssl/gd_bundle.crt
      SSLCertificateFile    /etc/apache2/ssl/example.com.crt    
      SSLCertificateKeyFile /etc/apache2/ssl/private.key
      # Additional defaults, e.g. ciphers, defined in apache's ssl.conf
    
      # Where the magic happens
      ProxyPass / https://our-elb-cname.example.com/
      ProxyPassReverse / https://our-elb-cname.example.com/
    
      # Might want this on; sets X-Forwarded-For and other useful headers
      ProxyVia off
    
      # This came from an example I found online, handles broken connections from IE
      BrowserMatch "MSIE [2-6]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
      # MSIE 7 and newer should be able to use keepalive
      BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
    </IfModule>
    

    希望这可以在将来为其他人节省一些时间:-)

    • 4
  2. Michael Hampton
    2012-09-28T16:35:25+08:002012-09-28T16:35:25+08:00

    您不需要“静态”IP 地址来实施 SSL;您确实需要 DNS 中的名称,将为其颁发 SSL 证书。

    典型的解决方案是在 DNS 中创建一个名称,然后将其作为为 Elastic Load Balancer 提供的 DNS 名称的 CNAME。

    • 3

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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