【发布时间】:2013-10-02 14:04:21
【问题描述】:
我一直在拼命想弄清楚如何在亚马逊 VPC 实例上设置多个 SSL 证书(我使用的是亚马逊的标准 linux AMI)
这就是我所做的:
- 我设置了一个 VPC 实例
- 添加了辅助私有 IP 地址
- 添加了 2 个弹性 IP 地址并将它们“链接”到私有地址
- 去找我的域名注册商,将两个测试域指向弹性 IP 地址
- 等到传播新的 IP 地址
- 我将 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>
我也试过<VirtualHost *:443>和<VirtualHost IP.ADDRESS:443>,也没用。
结果基本上是这样的:
- domain1.com(这是默认的 SSL 证书)工作正常(解决得很好,绿条)
- domain2.com: 甚至没有解决任何问题,即使当我执行
ping www.domain2.com时,我得到了正确的弹性 IP
我的问题是:知道如何让 domain2.com 解析并使用正确的 SSL 证书吗?
编辑/附加信息:
我也试过这个:
- 按照建议暂时停止防火墙,即。
sudo service iptables stop - 从 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):
我注意到两件事:
- 如果我使用 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
- 此命令
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
- 我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.com和www.domain2.com都不能正确解析:( -
好吧,我会说你用错误的术语来描述你的问题,那么......如果你按名称 ping 并获得正确的地址,这就是“正确解决”的定义。您是否能够连接到 Web 服务器,但您获得了错误的证书?或者当您尝试使用 Web 浏览器访问 domain2.com 时究竟会发生什么,或者 - 更好 - wget 或 curl?
-
<VirtualHost private.internal.ip.address:443>应该是正确的设置,如您发布的配置文件中所示。 -
@Michael-sqlbot:我相信我使用了正确的术语,请不要混淆:我对 domain1.com 没有任何问题(它可以正确解析并且证书没问题),问题出在 domain2.com:它只是无法解决,我什至无法连接以检查证书 :(
标签: apache ssl amazon-web-services amazon-ec2 amazon-vpc