【问题标题】:Setup multiple SSL certificates on amazon VPC在亚马逊 VPC 上设置多个 SSL 证书
【发布时间】:2013-10-02 14:04:21
【问题描述】:

我一直在拼命想弄清楚如何在亚马逊 VPC 实例上设置多个 SSL 证书(我使用的是亚马逊的标准 linux AMI

这就是我所做的:

  1. 我设置了一个 VPC 实例
  2. 添加了辅助私有 IP 地址
  3. 添加了 2 个弹性 IP 地址并将它们“链接”到私有地址
  4. 去找我的域名注册商,将两个测试域指向弹性 IP 地址
  5. 等到传播新的 IP 地址
  6. 我将 SSL 证书上传到 VPC 实例

然后我尝试编辑ssl.conf, see line 74 to 93 & httpd.conf, see line 1046 to 1086

ssl.conf

<VirtualHost domain1.com:443>
    ServerName www.domain1.com:443
    DocumentRoot "/var/www/html"
    SSLENGINE on
    SSLCertificateFile /etc/ssl/domain1_com.crt
    SSLCertificateKeyFile /etc/ssl/domain1_com.key
    SSLCertificateChainFile /etc/ssl/domain1_com.ca-bundle
</VirtualHost>

<VirtualHost _default_:443>
    ...Default SSL certificate (domain1.com) here...
</VirtualHost>

httpd.conf

<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /var/www/html
    ServerAdmin webmaster@domain1.com
</VirtualHost>

<VirtualHost *:80>
    ServerName domain2.com
    ServerAlias www.domain2.com
    DocumentRoot /var/www/html
    ServerAdmin webmaster@domain2.com
</VirtualHost>

我也试过&lt;VirtualHost *:443&gt;&lt;VirtualHost IP.ADDRESS:443&gt;,也没用。

结果基本上是这样的:

  1. domain1.com(这是默认的 SSL 证书)工作正常(解决得很好,绿条)
  2. domain2.com: 甚至没有解决任何问题,即使当我执行ping www.domain2.com 时,我得到了正确的弹性 IP

我的问题是:知道如何让 domain2.com 解析并使用正确的 SSL 证书吗?


编辑/附加信息:

我也试过这个:

  1. 按照建议暂时停止防火墙,即。 sudo service iptables stop
  2. 从 EC2 外部,curl --connect-timeout 10 https://domain2.com 给了我这个curl: (28) connect() timed out!

wget https://www.domain2.com/ 给了我这个:--2013-10-03 15:57:22-- domain2.com Resolving www.domain2.com... 54.229.111.22 Connecting to www.domain2.com|54.229.111.22|:443... failed: Connection timed out. Retrying.


编辑(2):

我注意到两件事:

  1. 如果我使用 2 个网络接口(每个 NIC 有一个专用 IP)sudo ifconfig 不显示第二个 NIC(即eth1),无论我使用一个还是两个 NIC,sudo ifconfig 总是返回第一个私有 IP (10.0.0.10),绝不是第二个 (10.0.0.183)

不出所料,无法访问的网站domain2.com对应第二个IP(缺失):10.0.0.183

  1. 此命令curl --interface 10.0.0.10 ifconfig.me 正确返回与domain1.com 关联的弹性IP 地址,而

此命令curl --interface 10.0.0.183 ifconfig.me 会返回:

curl: (45) bind failed with errno 99: Cannot assign requested address
  1. followed this guid,我可以看到eth1,但domain2.com仍然无法访问

curl --interface 10.0.0.183 ifconfig.me 现在返回这个:

curl: (7) Failed connect to ifconfig.me:80; Connection timed out

【问题讨论】:

  • 您是说“domain2.com”(不带 www)没有 ping 正确的 IP(或任何 IP?“未知主机?”)但“www.domain2.com”可以吗?
  • @Michael-sqlbot: 不,domain2.com 确实 ping 到了正确的 IP 地址,但 domain2.comwww.domain2.com 都不能正确解析:(
  • 好吧,我会说你用错误的术语来描述你的问题,那么......如果你按名称 ping 并获得正确的地址,这就是“正确解决”的定义。您是否能够连接到 Web 服务器,但您获得了错误的证书?或者当您尝试使用 Web 浏览器访问 domain2.com 时究竟会发生什么,或者 - 更好 - wget 或 curl?
  • &lt;VirtualHost private.internal.ip.address:443&gt; 应该是正确的设置,如您发布的配置文件中所示。
  • @Michael-sqlbot:我相信我使用了正确的术语,请不要混淆:我对 domain1.com 没有任何问题(它可以正确解析并且证书没问题),问题出在 domain2.com:它只是无法解决,我什至无法连接以检查证书 :(

标签: apache ssl amazon-web-services amazon-ec2 amazon-vpc


【解决方案1】:

您需要为 SSL 使用基于 ip 的虚拟主机。您要收听的 IP 地址将是私有 IP,而不是公共 IP。

您在端口 80 上的站点可以使用基于名称的虚拟主机。但是你需要确保你使用的是这个指令:NameVirtualHost *:80

【讨论】:

  • 我听从了您的建议(请参阅 httpd.conf, line 1046 to 1086ssl.conf, line 74 to 93),但我遇到了同样的行为:domain1.com 工作正常,但 domain2.com 甚至无法解决,甚至虽然ping www.domain2.com 解析到正确的 IP 地址就好了!
  • @datasage 非常感谢您的提示。非常非常有帮助。我几乎一整天都在尝试在 vpc ec2 上调试 2 个 ip,但无法使其工作。你的建议真的很有帮助:)
【解决方案2】:

This tutorial 为我修复了它

一个小(但很重要)的注意事项:

而不是输入这个命令(步骤#5):

echo "1 admin" >> /etc/iproute2/rt_tables

你应该这样做:

sudo vi /etc/iproute2/rt_tables

然后在文件末尾添加1 admin

【讨论】:

    【解决方案3】:

    我认为您需要为此遵循故障排除方法。

    从简化配置开始并验证基本组件,然后逐步构建完整的解决方案。例如:

    • 将 domain2 的弹性 IP 映射到新的 EC2 服务器。
    • 在新服务器上,首先通过 HTTP 使 domain2.com 可用
    • 一旦通过 HTTP 工作,请将其设置为通过 HTTPS 工作
    • 一旦通过 HTTPS 工作,将弹性 IP 映射回原始服务器,并使用 HTTP 使其在原始服务器上工作
    • 一旦它通过 HTTP 运行,最后一步是让它在原始服务器上通过 HTTPS 运行。

    这里的目的是验证每个步骤并准确找出问题所在。这将使您能够最好地将精力用于解决根本原因。

    【讨论】:

    • 步骤 #1、#2 和 #3 --> 好的。但是当我将弹性 IP 映射回第一个实例以便我可以让两个 IP/网站从一个实例工作时,www.domain2.com 不再工作了! (连接超时)
    • 好的,所以问题与配置的 SSL 部分无关。您的 EC2 实例是否在 VPC 中运行? (我想知道它是否可能与 VPC 网络 ACL 或类似的东西有关)。
    • 是的,它确实在 VPC 中
    • 好的,我编辑了我的问题以添加更多我注意到的信息/事物(请参阅末尾的EDIT (2) 部分)...谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2014-03-04
    • 2013-11-24
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多