RESTful API或反向代理的SSL?

时间:2014-11-12 23:36:27

标签: rest ssl reverse-proxy

我正在构建一个只能由TLS访问的RESTful API。应该在哪里实施SSL连接?

  1. 通过RESTful API本身,我的API是用golang编写的,它可以轻松处理SSL。

  2. 通过SSL反向代理,这里我使用的是nginx。

  3. 我更喜欢第二种方法,因为nginx更好地处理缓存和静态交付。

    我现在应该只实现我的API HTTP吗?在我看来,系统是安全的,只要nginx反向代理只提供SSL,而我的API只暴露给nginx。

    我不确定是否有第三种方法,而我只保留我的API SSL,而nginx透明地传递所有请求。

1 个答案:

答案 0 :(得分:0)

TL; DR:我将在第二个或第三个选项之间进行选择,具体取决于场景。如果要在Internet上发布API,请不要选择第一个。

最安全的选项是第三个:实现您的API以仅允许SSL连接,并使用反向代理发布到Internet。

专业人士即使是内部连接,与您的API通信也是安全的。这将为您提供内部攻击者的保护。缺点是服务器上的额外处理负载,用于管理SSL安全性并且可能会影响性能。

无论如何,你应该寻找成本效益。这就是它取决于场景的原因。例如,如果您的API不会被内部用户访问,但仅针对内部服务,并且服务器上的负载很重,您可以考虑第二种方法:普通HTTP内部通信和Internet的SSL终止。