Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 反向代理背后是否需要HTTPS?_Security_Ssl_Nginx_Https_Server - Fatal编程技术网

Security 反向代理背后是否需要HTTPS?

Security 反向代理背后是否需要HTTPS?,security,ssl,nginx,https,server,Security,Ssl,Nginx,Https,Server,我有一个API服务器运行在nginx反向代理之后。重要的是通过TLS保护对API服务器的所有请求,因为它处理敏感数据 我已经将nginx设置为与TLS(LetsEncrypt)一起工作,这样看起来就可以了。但是,从nginx到我的API服务器的请求仍然是不安全的http请求(顺便说一句,这都发生在docker容器中) 在反向代理和API服务器之间也设置https是最佳做法吗?如果是这样的话,我该如何在不过度设计的情况下做到这一点呢?这一切都取决于您希望实现的安全性或偏执程度。它还可能取决于您正在

我有一个API服务器运行在nginx反向代理之后。重要的是通过TLS保护对API服务器的所有请求,因为它处理敏感数据

我已经将nginx设置为与TLS(LetsEncrypt)一起工作,这样看起来就可以了。但是,从nginx到我的API服务器的请求仍然是不安全的
http
请求(顺便说一句,这都发生在docker容器中)


在反向代理和API服务器之间也设置https是最佳做法吗?如果是这样的话,我该如何在不过度设计的情况下做到这一点呢?

这一切都取决于您希望实现的安全性或偏执程度。它还可能取决于您正在使用的数据类型。例如:我肯定会对信用卡号码或其他敏感信息这样做

如前所述,您通常会在面向前端的Web服务器上终止SSL连接,假设API后端也在您信任和控制的LAN内。如果您想多走一步,还可以在API后端设置SSL。如何做到这一点的细节取决于您在后端使用的软件


如果您确实决定在API后端实现SSL,那么设置将类似于在前端使用SSL设置Nginx,主要区别在于您不需要在后端使用公共证书。它可以是自签名的,因为除了您的web服务器之外,没有其他人会与它对话。然后,只需修复代码中的所有URI以使用HTTPS。

如果所有URI都在安全局域网内,则不需要。是的,我只是想知道最佳做法是什么。大多数情况下,您将在nginx终止SSL,并让它成为实际API的http。这也减少了API的负载,因为https比http重。如果您的nginx不在同一网络中,或者您认为nginx到API的通道不安全,那么您也可以使用从nginx到API的https。但在通常情况下,SSL会在LB或面向前端的Web服务器上终止。显而易见的注释:代理和API之间加密的需要完全取决于您的威胁模型。与使用HTTP相比,使用HTTPS会稍微降低性能。您说过“这取决于您希望实现的安全性或偏执程度”,但在边缘后使用HTTPS(例如反向代理)如何使其更安全?除了满足我的完美主义之外,它对整体安全性到底有什么好处,值得轻微的性能损失呢?@Кааааааааааааааааа。如果它们都在您控制的同一子网中,您不需要它,因为您可以信任该子网中的所有计算机。如果到后端的连接正在穿越不受信任的网络路径,则建议使用HTTPS来保护传输数据的隐私和完整性。这样做也可能有合规性原因。