我想做什么:创建多个侦听同一端口的TLS服务器。每个TLS服务器都有不同的证书集,并且只允许某些客户端集。例如,第一个TLS服务器应该允许客户端X而不是客户端Y.第二个TLS服务器应该允许客户端Y而不允许客户端X.
我遇到的问题是客户端Y和X都只与第一个TLS服务器连接。使用的TLS证书因不同的TLS服务器签名而不同,但它们往往只连接到第一台TLS服务器。
对此问题的任何想法表示感谢。
答案 0 :(得分:0)
那个设置不会起作用。 cluster API允许多个工作人员共享一个端口,但是没有关于哪个工作人员分配给哪些请求的情报。如果没有很多负载,那么完全有可能只有一个工作人员会收到所有请求。
我不确定你要做什么,但如果你考虑一下,这种设置没有意义。如果您有不同的证书,则无法成功设置TLS会话。这就像尝试将多个SSL证书绑定到同一个IP。
我能看到这种工作的唯一方法是,每个不同的证书是否与不同的主机名相对应。在这种情况下,您可以尝试使用http://nodejs.org/docs/latest/api/tls.html#tls.connect中记录的SNI。但是,每个工作进程仍然需要访问相同的证书池。