【问题标题】:Getting a letsEncrypt CA certificate for AWS Elastic IP获取 AWS Elastic IP 的letsEncrypt CA 证书
【发布时间】:2020-01-02 15:06:30
【问题描述】:

指南: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html

问题:

我必须在exact-online 和其他网站之间进行整合。为此,我在 Amazon linux 2 EC2 服务器上运行了一个 java 后端,并使用一种控制器方法来监听一个精确的在线 webhook。我从 webhook 获取信息并使用他们的 api 将其发送到其他网站。 所以我没有任何人可以访问的实际网页,它只是一个“内部”程序。

现在对于 webhook,我的控制器如下所示:

    @RequestMapping(value = "/WebHook", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<?> webhook(@RequestBody(required = false) ExactWebHookResponse exactWebHookResponse) {
        // handle exactWebHookResponse
        return new ResponseEntity<Object>(HttpStatus.OK);
    }

webhook 仅通过“https”协议进行通信。所以我的控制器应该监听到 https://{Elastic-IP}/WebHook 的 webhook-requests。

按照上述指南在亚马逊服务器上初始化 SSL/TLS;我安装了 Apache,配置了我的安全组等。在我尝试使用 LetsEncrypt-Certbot 获得 CA 证书之前一切都很好。当我尝试获取 domain: {Elastic-IP} 的证书时,它告诉我他们不向 IP 地址提供证书。所以我尝试使用我的公共 DNS:ec2-{Elastic-IP}.us-east-2.compute.amazonaws.com,但他们不向“amazonaws.com”域提供证书。

我对 SSL/TLS 和证书一点也不熟悉,所以我在这里做错了什么?

【问题讨论】:

    标签: amazon-web-services certificate


    【解决方案1】:

    SSL/TLS 证书有两个目的——提供用于协商加密的签名公钥只是其中之一。另一个是证明服务器身份或控制——您连接的服务器不是冒名顶替者。

    浏览器、curl 和 HTTP 客户端库信任您的证书,因为它由受信任的证书颁发机构进行加密签名。

    证书颁发机构在颁发证书时实质上是在向您和您的服务器担保——他们在颁发证书之前确认了您请求证书的授权。如果他们为 *.amazonaws.com 或 AWS IP 地址颁发了证书,那将等于他们声称他们相信并确认您是亚马逊……而您不是。

    所以 Let's Encrypt 不会为您提供任何明显属于您的证书。 IP 地址不是你的,*.amazonaws.com 中的主机名也不是你的。亚马逊有一个免费的证书产品(亚马逊证书管理器),他们也不会给你这些案例的证书。

    如果您想要来自 Let's Encrypt(或 ACM 或任何其他免费或非免费证书颁发机构)的证书,您需要一个域名。人类不访问该服务的事实并不真正相关。注册一个新域或从您已经拥有的域中分配一个主机名。在 DNS 中将其指向您的服务,您将能够获得证书。

    当然,如果该服务完全在单个组织内部,您可以为任何您喜欢的东西(无论是 IP 地址还是主机名)设置私有证书颁发机构,在这种情况下不需要外部验证,因为没有人将信任您的证书,但您组织中选择信任您的私有 CA 的机器除外。但设置私有 CA 并非易事。

    【讨论】:

    • 实际上,您可以为完整的 DNS 名称创建一个让加密证书,例如 ec2-{Elastic-IP}.us-east-2.compute.amazonaws.com,让加密执行 HTTP 验证如果通过 cert bot 运行,amazonaws.com 没有 CAA 记录,因此它将获得证书,这与具有 CAA 记录的 cloudfront.net 不同。
    • @JamesDean 不,你不能。 Let's Encrypt 有一个黑名单。它知道这些名称是短暂的,并且不允许这样做。
    猜你喜欢
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2017-03-18
    • 2022-07-24
    • 2017-05-28
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多