23

我想在 EC2 实例上启用 ssl。我知道如何安装第三方 SSL。我还在安全组中启用了 ssl。

我只想使用这样的网址:ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com 和 https。

我在任何地方都找不到步骤。

如果有人可以指导我查看某些文件或其他内容,那就太好了。


编辑:

我在 EC2 上有一个实例。我已经安装了 LAMP。我还在安全组策略中启用了 http、https 和 ssh。

当我在浏览器中打开公共 DNS 网址时,我可以看到 Web 服务器运行良好。但是当我将 https 添加到 URL 时,什么也没有发生。

有没有我想念的方法?我真的不想在这个实例上使用任何自定义域,因为我将在一个月后终止它。

4

4 回答 4

12

对于开发、演示、内部测试(这对我来说很常见),您可以使用隧道工具在 ec2 中实现演示级 https。在几分钟内,尤其是用于 [ngrok] 的内部测试目的,您将拥有 https(演示级流量通过隧道)

工具 1:https ://ngrok.com步骤:

  1. 将 ngrok 下载到您的 ec2 实例:(wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip在撰写本文时,登录后您将在 ngrok 主页中看到此链接)。
  2. 在您的 AWS 安全组中启用 8080、4443、443、22、80。
  3. 注册并登录到 ngrok 并复制命令以使用令牌激活它:(./ngrok authtoken shjfkjsfkjshdfs登录后您将在他们的主页中看到它)
  4. 在上运行您的 http - 非 https 服务器(任何、nodejs、python 等)EC2
  5. 运行 ngrok:(./ngrok http 80如果您的简单 http 服务器在不同的服务器上运行,则使用不同的端口)
  6. 您将获得一个https指向您的服务器的链接。

工具 2:cloudflare 包裹

或者,我认为您可以使用称为 cloudflare wrap的 ngrok 替代方法,但我没有尝试过。

工具 3:本地隧道

第三种选择可能是https://localtunnel.github.io,与 ngrok 不同,它可以免费为您提供一个子域,它不是永久性的,但您可以要求一个特定的子域而不是随机字符串。

--subdomain request a named subdomain on the localtunnel server (default is random characters)

工具 4:https ://serveo.net/

于 2018-07-15T03:43:50.073 回答
10

事实证明,亚马逊没有为其 EC2 实例提供开箱即用的 ssl 证书。我跳过了他们是虚拟服务器提供商的部分。

要安装 ssl 证书甚至是基本证书,您需要从某人那里购买并在您的服务器上手动安装。

我使用了startssl.com 他们提供免费的基本ssl 证书。

于 2014-04-09T12:47:37.957 回答
7
  1. 使用 . 创建自签名 SSL 证书openssl。检查链接以获取更多信息。
  2. 在您的 Web 服务器上安装该证书。正如您提到的 LAMP,我猜它是 Apache。因此,请查看链接以将 SSL 安装到 Apache。

如果您重新启动实例,您将获得不同的公共 DNS,因此请注意这一点。或将弹性 IP 地址附加到您的实例。

但是当我将 https 添加到 URL 时,什么也没有发生。

正确,您的 Web 服务器需要安装 SSL 证书和私钥才能在 https 上提供流量。一旦完成,你应该很高兴。此外,如果您使用自签名证书,那么您的网络浏览器会抱怨证书不受信任。您可以忽略该警告并继续访问网页。

于 2013-11-13T04:48:07.357 回答
1

您可以结合使用 Caddy 和 nip.io 在没有自定义域的 EC2 实例上启用 SSL。

nip.io允许您将任何 IP 地址映射到主机名,而无需编辑主机文件或在 DNS 管理中创建规则。

Caddy是一个强大的开源 Web 服务器,具有自动 HTTPS。

  1. 在您的服务器上安装 Caddy

  2. 创建一个 Caddyfile 并添加您的配置(此配置会将所有请求转发到端口 8000)

    <EC2 Public IP>.nip.io {
        reverse_proxy localhost:8000
    }
    

    在此处输入图像描述

  3. 使用命令启动 Caddycaddy start

您现在应该可以通过以下方式访问您的服务器了https://<IP>.nip.io

在此处输入图像描述

我在这里写了一篇关于设置的深入文章:Configure HTTPS on AWS EC2 without a Custom Domain

于 2021-08-16T14:03:59.753 回答