2014-01-29 100 views
0

我们希望在我们的公司代理服务器后面的node.js客户端和互联网中的node.js服务器(我们也控制它)之间建立TLS加密连接。通过代理的TLS连接

我对这个问题感到困惑,我们如何通过代理使用TLS来保持基于证书的安全方法?

回答

1

TLS代理是透明的。客户端发送CONNECT请求,其中包含目标主机名和端口,然后代理创建一个到该主机的新TCP连接,之后除了在客户端和服务器连接之间移动数据包之外别无其他。

所以从客户端的角度来看,客户端从代理中获取的证书就是服务器发送的字节。

在服务器端,您将看到的IP是代理的IP,而不是客户端的IP。因此,您不应该在客户端使用服务器证书,因为证书中的CN和IP /反向查找的主机名称不匹配。但是,如果您使用客户端证书,则代理将再次将其传递到服务器而不进行任何修改 - 因此,如果您在服务器上执行某些操作(例如,由CA信任的此客户端证书签名),则一切正常。