网络服务 - 在没有任何专用 IP 地址的 EC2 服务器上安装 SSL 证书



场景:我有一个EC2服务器,其中包含当前设置为接受来自多个iPad的连接的api。我不希望网络嗅探器看到服务器和设备之间交换的 JSON 请求。这个想法是有一个安全的协议,以便保护通信。

有人告诉我,购买SSL证书是前进的方向。我运行的 Amazon 服务器实例具有以下格式的地址:

ec2-xx-xxx-xx-xxx.ap-southeast-1.compute.amazonaws.com/

这是我的 Web 根目录包含所有适当的 Web 服务文件的位置。我的网络服务 url 看起来像这样:

ec2-xx-xxx-xx-xxx.ap-southeast-1.compute.amazonaws.com/Agent/Create

等等。没有任何托管计划(在需要信息的情况下(。我被建议从 http://www.Godaddy.com 购买SSL证书,并考虑获得多达5个多域SSL证书包。

问题: 1我需要注意哪些事情以确保没有任何故障?我最近读到我可能需要将弹性 IP 地址关联到我的实例,否则我的实例的 IP 会在重启时更改?如果是这种情况,这意味着用于此的SSL证书:ec2-xx-xxx-xx-xxx.ap-southeast-1.compute.amazonaws.com 域将不再有效,因为IP地址在重新启动时会更改,因此我丢失了安全域?

问题: 2如果我在问题 1 中的想法是正确的,那么我的问题将是什么是最用户友好的方式,或者说,初学者为我的服务器实例创建专用 url 的方法(以便 1( 域名不会在服务器重新启动时随机更改(不确定我什么时候会重新启动(和 2( 这是否意味着我可以拥有更容易记住的 Web 服务 URL?如。。。。 www.pk.com/Agent/Create而不是长 EC2 丑陋的网址?!

任何易于遵循的教程都将非常有帮助。我看过几篇关于弹性 IP 地址、SSL 证书的文章,以及其他关于重命名 ec2 url 的文章,但我实际上不知道哪一篇适用于我。哈哈

希望有人能帮忙。

谢谢

您要做的是获取弹性 IP 地址。这样,您就可以在启动实例时将其绑定到特定的 IP 地址。然后,您可以在 DNS 中注册主机名(Amazon 不帮助您完成此部分(,并声明该主机名具有您注册的弹性 IP 地址。

最后一点是获取在其可分辨名称的 CN 字段中具有主机名的服务器证书(严格来说,是公共部分是服务器证书的密钥对(,并在实例上安装该服务器密钥对。(这是亚马逊无法帮助您的另一部分,实际上与您自己托管硬件的过程相同。像这样,客户

  1. 查找主机名并获取弹性 IP 地址,
  2. 连接并获取服务器证书,以及
  3. 检查服务器证书,并查看其所针对的主机名是否是他们预期的主机名。(还有一些其他检查,例如证书是否由受信任的证书颁发机构签名,以及证书是否在其有效期内。
这允许客户端信任他们安全连接到的人

是他们期望安全连接到的人,这是建立信任的关键部分。

您无需申请的证书中使用 AWS 计算机名称(内部或外部(。这些更改,您真的不想信任其他人的虚拟机。

Donal的答案是要走的路。您需要显式注册一个域,并生成包含 CN 作为该域的 SSL 证书。弹性 IP 地址绝对是您在本期中的朋友。您将需要它们。

为了给出另一个观点,我添加了另一个答案:如果你想扩展你的后端解决方案,那么这样做会更加困难。如果您曾经考虑过添加更多服务器来托管您的 Web 服务,那么您绝对应该设置一个弹性负载均衡器,将您的实例添加到其中,并将您刚刚注册的域指向您的弹性负载均衡器。然后,您可以购买 SSL 证书并将其直接安装在 ELB 上,在 ELB 上配置 SSL 终止。您还将配置 ELB,以便到达端口 443 的连接将映射到服务器上的端口 80(或任何端口(。别担心,这很容易设置。

每当您想向 Web 服务添加更多服务器时,只需设置另一个 EC2 实例(此过程可以 - 并且应该 - 自动化(并将其添加到 ELB 即可。

通过此设置,您无需使用弹性 IP 地址。所有连接都通过 ELB。

最新更新