【发布时间】:2014-01-29 14:53:03
【问题描述】:
我们希望在我们公司代理后面的 node.js 客户端和互联网中的 node.js 服务器(我们也可以控制)之间建立 TLS 加密连接。
我对这个问题感到困惑,我们如何通过代理保持基于证书的安全方法与 TLS?
【问题讨论】:
标签: node.js ssl proxy certificate
我们希望在我们公司代理后面的 node.js 客户端和互联网中的 node.js 服务器(我们也可以控制)之间建立 TLS 加密连接。
我对这个问题感到困惑,我们如何通过代理保持基于证书的安全方法与 TLS?
【问题讨论】:
标签: node.js ssl proxy certificate
TLS 代理是透明的。客户端发送一个 CONNECT 请求,其中包含目标主机名和端口,然后代理创建一个到该主机的新 TCP 连接,之后除了在客户端和服务器连接之间移动数据包之外什么都不做。
所以从客户端的角度来看,客户端从代理中获取的证书就是服务器发送的字节数。
在服务器端,您将看到的 IP 是代理的 IP,而不是客户端的 IP。所以你不应该在客户端使用 server 证书,因为证书中的 CN 和 IP / 反向查找的主机名不匹配。但是,如果您使用客户端证书,代理将再次将其传递给服务器而不进行任何修改 - 因此,如果您在服务器上执行一些“此客户端证书是否由我信任的 CA 签名”检查,一切都会正常工作。
【讨论】: