如何向API提供SSL?

时间:2016-11-03 12:17:21

标签: node.js amazon-web-services ssl express

我使用自签名的openssl用于API,但是当它们在客户端使用时,它显示错误消息in secured response。如何提供原始ssl证书?我在aws中使用弹性bean stalk来托管API。我已经遇到了ACM,它与Elastic Load Balancing和Amazon CloudFront集成在一起。那么我应该从这两个中使用哪一个?如果我使用这两个中的任何一个,那么在生产模式中是否足够?或者我应该使用其他任何一个?

2 个答案:

答案 0 :(得分:0)

您可以使用与您的DNS记录匹配的ACM设置证书。然后将DNS记录指向您的Elastic Beanstalk Environments DNS记录。这将是ENV-name.76p5XXXX22.us-east-1.elasticbeanstalk.com

AWS有一个您可以关注的文档here

答案 1 :(得分:0)

让我们开始吧。

出于开发目的,自签名证书是可以的。您可以在环境变量中设置NODE_TLS_REJECT_UNAUTHORIZED=0

对于Load Balancer后面的AWS Elastic Beanstalk,您可以有两种方式 -

  1. 单向加密 - 在此只在您的负载均衡器中添加证书。这样,Client to Load balancer被加密,然后负载均衡器到实例是未加密的。这很安全。我用这个。这样我就不必在我的实例上使用任何证书,而是在实例上运行普通的HTTP服务器。您可以选择仅允许HTTPS或不允许来自负载均衡器设置。

  2. 端到端加密 - 在此您也可以在实例上使用证书,您可以选择直接从Load Balancer将加密流量转发到您的实例,也可以解密并重新启动 - 加密流量并发送到实例。我对此没有任何经验。第一种选择适用于大多数情况。请参阅:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-endtoend.html