如何在没有域的情况下对后端 EC2 实例使用 SSL

cha*_*ark 6 ssl amazon-ec2 ssl-certificate amazon-web-services

我设置了一个运行后端的 AWS EC2 实例,它能够与我的前端(本地)通信,但不能与部署的前端(在 Netlify 上)通信。

是否需要为我的 EC2 实例创建域名才能使用 SSL?我的后端没有域名,因为它只是用于 API 调用。

如何在没有域名的情况下为我的后端服务器使用 SSL?我发现的每个视频和博客都需要域名。如果有人能给我指出正确的资源,我将不胜感激。

小智 10

您可以结合使用 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
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用命令启动 Caddycaddy start

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

在此输入图像描述

我在这里写了一篇关于设置的深入文章:在没有自定义域的情况下在 AWS EC2 上配置 HTTPS


小智 0

遗憾的是,要使用 SSL 证书,您需要有一个有效的 DNS 名称,以便在您调用它时它可以处理它,无论如何,如果您要加密的是信息,您可以使用自己的加密方法并将加密的数据发送到前端,然后使用像 crypto.js 这样的东西在解密后使用它,但最佳实践是为后端提供它自己的 DNS,这样,如果在某个时候 API 增长到可以被其他人用于业务的程度,那么您可以让它们指向指定的东西(而且您也不需要处理整个手动加密/解密)。