指南:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html
问题:
我必须在精确的在线和其他网站之间进行整合。为此,我在AmazonLinux2EC2服务器上运行了一个java后端,带有一个控制器方法来侦听一个精确的在线网络钩子。我从网络钩子获得信息,并发送到其他网站使用他们的api。因此,我没有任何实际的网页,有人可以访问,这只是一个‘内部’程序。
现在,对于web钩子,我的控制器如下所示:
@RequestMapping(value = "/WebHook", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<?> webhook(@RequestBody(required = false) ExactWebHookResponse exactWebHookResponse) {
// handle exactWebHookResponse
return new ResponseEntity<Object>(HttpStatus.OK);
}Web钩子只通过‘https’-协议进行通信。因此,我的控制器应该监听向https://{Elastic-IP}/WebHook发出的web钩子请求。
要在Amazon服务器上初始化SSL/TLS,我遵循上述指南;我安装了Apache、配置了我的安全组等等。一切正常,直到我尝试使用LetsEncrypt获得CA证书。当我试图获得域的证书:{Elastic}时,它告诉我他们不给IP地址颁发证书。所以我尝试使用我的公共DNS: ec2-{Elastic-IP}.us-east-2.compute.amazonaws.com,,但是他们不给'amazonaws.com‘域颁发证书。
我对SSL/TLS和证书一点也不熟悉,所以我在这里做错了什么?
发布于 2019-08-30 00:22:30
SSL/TLS证书有两个目的--提供用于协商加密的签名公钥只是其中之一。另一种是证明服务器身份或控制--连接到的服务器不是冒充者。
浏览器、curl和HTTP客户端库信任您的证书,因为它是由受信任的证书颁发机构进行加密签名的。
证书颁发机构在颁发证书时,本质上是为您和您的服务器提供担保--在颁发证书之前,他们确认了您请求证书的授权。如果他们为*.amazonaws.com或AWS地址颁发了一个证书,那就相当于他们声称他们相信并确认您是亚马逊.而你不是。
所以,让我们加密不会给你一个证书,任何不是明显的你。IP地址不是您的,*.amazonaws.com内部的主机名也不是。Amazon有一个免费的证书产品(),他们也不会为这些情况提供证书。
你需要一个域名,如果你想要一个证书,让我们加密(或ACM或任何其他免费或非免费证书颁发机构)。服务没有被人类访问这一事实并不是真正相关的。注册新域或从您已经拥有的域分配主机名。将其指向您的服务,在DNS中,您将能够获得证书。
当然,如果服务完全在单个组织的内部,您可以为任何您喜欢的东西建立一个私有证书颁发机构--无论是IP地址还是主机名--在这种情况下不需要外部验证,因为除了您组织中选择信任您的私有CA的机器之外,没有人会信任您的证书。但是建立一个私有CA并不容易。
https://stackoverflow.com/questions/57708467
复制相似问题