我一直在努力想弄清楚如何在亚马逊 VPC 实例上设置多个 SSL 证书(我使用的是亚马逊的标准 linux AMI)
这是我所做的:
- 我设置了一个 VPC 实例
- 添加了辅助私有 IP 地址
- 添加了 2 个弹性 IP 地址并将它们“链接”到私有地址
- 去了我的域名注册商并将两个测试域指向弹性 IP 地址
- 等到传播新的 IP 地址
- 我将 SSL 证书上传到 VPC 实例
然后我尝试编辑ssl.conf,见第 74 到 93 行和httpd.conf,见第 1046 到 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
- 此命令正确地重新调整与while
curl --interface 10.0.0.10 ifconfig.me
关联的弹性 IP 地址domain1.com
此命令curl --interface 10.0.0.183 ifconfig.me
返回:
curl: (45) bind failed with errno 99: Cannot assign requested address
- 我按照这个指南,我可以看到
eth1
,但domain2.com
仍然无法访问
curl --interface 10.0.0.183 ifconfig.me
现在返回:
curl: (7) Failed connect to ifconfig.me:80; Connection timed out