AWS和TLS身份验证

时间:2015-05-21 13:00:11

标签: ssl amazon-web-services

有谁知道如何在AWS Ubuntu计算机内运行的应用程序上启用TLS身份验证。

具体来说,我在AWS上运行Linux容器(LXC)和LXD(LXC之上的框架,提供REST API以访问Linux容器等)的Ubuntu机器。我使用LXC命令行实用程序在Ubuntu主机上生成证书和密钥。然后我通过运行curl命令测试证书是否在本地工作,并为其提供--cert和--key选项,一切正常。 然后我将证书复制到我的本地计算机(Mac OS X)keyChain并尝试访问Ubuntu服务器(btw具有开放安全性,允许来自任何端口上的任何地方的流量。)它给了我错误:"这服务器无法证明它是XXXX。其安全证书来自ip-X.X.X.X"。

我注意到证书的DNS名称值是AWS提供给机器的私有IP地址而不是公共IP地址。

是否有人知道如何从外部公共网络访问AWS Ubuntu计算机内的TLS应用程序?

如果事情不清楚,请告诉我,我很乐意提供更多详情。

1 个答案:

答案 0 :(得分:1)

证书中包含一个字段,用于指定证书应来自哪个计算机名称或IP地址。这可以防止其他站点获取相同的证书并将其作为其他站点的证书呈现。这种情况下的问题是您的证书指定了AWS内部地址,但客户端看到了服务器的外部地址。

解决方案很简单:生成一个安全证书,其主题备用名称(SAN)是外部IP地址而不是内部IP地址。然后,外部客户端将看到证书IP地址与其去往的地址相匹配。