用于 OwnCloud 的 Amazon EC2 上的 HTTPS

HTTPS on Amazon EC2 for OwnCloud

我有一个问题希望有人能为我解答。

我的情况:我在 EC2 Amazon 实例上有一个 Ubuntu 服务器 运行 Apache2,它正在为一个 OwnCloud 实例提供服务。

我的目标:我想在此实例上部署 HTTPS。我已经将安全组配置为允许来自任何地方的 HTTPS 流量(因为服务器应该可以从互联网上的任何地方访问)。我们已经在另一家域名托管公司注册了一个域名 bar.com。但是我们想将 foo.bar.com 指向这个 owncloud 安装。

我的问题:

1) 我使用哪个 IP 地址来配置该域名托管公司的 DNS。因为EC2实例的public ip-address和public DNS每次重启都会更新

2) 如何为Apache2 的HTTPS 配置生成SSL 证书?更具体地说,我需要在证书中输入哪个公用名 (CN)。因为 EC2 实例的 public dns 在每次重启时都会发生变化。我想如果我把 foo.bar.com CN 放在证书中,一旦用户从 foo.bar.com -> .compute.amazonaws.com 重定向,浏览器就会抛出证书错误,我说得对吗?

简而言之:如何在 Amazon AWS 的 EC2 实例上部署 https,并在第三方域名服务处使用 dns?

  1. 要处理不断变化的 public IP 地址,您有两个选择,首先(对于简单情况,最好)转到弹性 IP 页面,获取一个 eIP 并关联它与您的实例,此关联以及因此 public IP 将在 start/stop 之后仍然存在。如果需要,您甚至可以将 eip 移到另一台机器上。此选项非常便宜(如果 eip 未连接到已启动的服务器,您只需为 eip 付费)。然后你就可以安全地将你的 dns 指向 eip。替代选项更强大,那就是使用 elb(负载平衡),但它也涉及更多的设置工作。

  2. 我假设如果你问的是 cn,你并不真的想要 "how to" 创建 ssl 证书(如果我错了请纠正我)。对于 cn,您只需使用域名 - 名称解析为该域的证书的 IP 地址并不重要。如果你有自己的域指向你的 eip,你不需要关心机器 public 主机名。用户永远不会看到它。