Sim*_*rtM 4 certificate amazon-web-services
指南: 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);
}
Run Code Online (Sandbox Code Playgroud)
Webhook 仅通过“https”协议进行通信。所以我的控制器应该监听对 https://{Elastic-IP}/WebHook 发出的 webhook 请求。
为了在 Amazon 服务器上初始化 SSL/TLS,我遵循了上述指南;我安装了 Apache,配置了我的安全组等。一切都很顺利,直到我尝试使用 LetsEncrypt-Certbot 获取 CA 证书。当我尝试获取域的证书时:{Elastic-IP} 它告诉我他们不向 IP 地址提供证书。因此,我尝试使用我的公共 DNS:ec2-{Elastic-IP}.us-east-2.compute.amazonaws.com,但他们不向“amazonaws.com”域提供证书。
我对 SSL/TLS 和证书一点也不熟悉,那么我在这里做错了什么?
SSL/TLS 证书有两个目的——提供用于协商加密的签名公钥只是其中之一。另一个是证明服务器身份或控制权——您所连接的服务器不是冒名顶替者。
浏览器、curl 和 HTTP 客户端库信任您的证书,因为它是由受信任的证书颁发机构以加密方式签名的。
证书颁发机构在颁发证书时,本质上是为您和您的服务器提供担保——他们在颁发证书之前确认了您请求证书的授权。如果他们颁发了证书*.amazonaws.com或 AWS IP 地址,那就相当于他们断言他们相信并确认您是亚马逊……但事实并非如此。
因此,Let's Encrypt 不会为任何明显不属于您的内容提供证书。IP 地址不是您的,里面的主机名也不是您的*.amazonaws.com。亚马逊有一个免费的证书产品(亚马逊证书管理器),他们也不会为这些情况提供证书。
如果您想要来自 Let's Encrypt(或 ACM 或任何其他免费或非免费证书颁发机构)的证书,您需要一个域名。该服务不被人类访问这一事实并不真正相关。注册新域或从您已拥有的域分配主机名。将其指向 DNS 中的您的服务,您将能够获得证书。
当然,如果该服务完全属于单个组织内部,您可以为您喜欢的任何内容(无论是 IP 地址还是主机名)设置私有证书颁发机构,在这种情况下不需要外部验证,因为没有人会信任您的证书,但组织中选择信任您的私有 CA 的计算机除外。但设置私有 CA 并非易事。
| 归档时间: |
|
| 查看次数: |
2622 次 |
| 最近记录: |