我们希望在公司代理后面的node.js客户端和互联网上的node.js服务器之间建立TLS加密连接。(我们也控制)。
我对此问题感到困惑,我们如何通过代理保持基于证书的安全方法与TLS?
答案 0 :(得分:1)
TLS代理是透明的。客户端发送CONNECT请求,该请求具有目标主机名和端口,然后代理创建与该主机的新TCP连接,之后除了在客户端和服务器连接之间移动数据包之外别无其他。
因此,从客户端的角度来看,客户端从代理服务器中检索的证书将完全是服务器发送的字节数。
在服务器端,您将看到的IP是代理的IP,而不是客户端的IP。因此,您不应在客户端中使用服务器证书,因为证书中的CN和IP / reverse查找的主机名将不匹配。但是如果您使用客户端证书,代理将再次将其传递给服务器而不进行任何修改 - 因此,如果您执行某些操作“这是由CA签署的客户端证书,我信任”检查服务器,一切都会正常工作。