nodejs集群不同的TLS会话处理
我该怎么做:创建多个TLS服务器在同一端口上侦听。每个TLS服务器都有不同的证书集,只应允许某些客户端。例如,第一TLS服务器应该允许客户端X,而不是客户端Y.二TLS服务器应该允许,我有客户端Y和没有客户端X.nodejs集群不同的TLS会话处理
问题是客户端Y和X两者只与第一TLS连接服务器。所使用的TLS证书对于每个客户端都是不同的,由不同的TLS服务器签名,但它们倾向于仅连接到第一台TLS服务器。
想知道关于这个问题的任何想法。
这只是设置是行不通的。 cluster API允许多个工作人员共享一个端口,但没有关于哪个工作人员分配给哪个请求的情报。如果没有很多负载,则完全有可能只有一名工作人员会收到所有请求。
我不知道你想做什么,但如果你仔细想想,这种设置是没有意义的。如果您拥有不同的证书,则无法成功设置TLS会话。这就像试图将多个SSL证书绑定到相同的IP一样。
我可以看到这个工作的唯一方法是,如果每个那些不同的证书具有不同的主机名对应。在这种情况下,您可以尝试使用SNI,如http://nodejs.org/docs/latest/api/tls.html#tls.connect所述。但是,每个工作进程仍需要访问相同的证书池。
感谢Rohan的回应。是的,在一些实验中,我得出了关于接收消息的工作线程是随机的相同结论。我将继续使用SNI解决方案,并依靠servername来处理不同的证书。 – Janon 2012-02-02 15:44:50
@Janon听起来不错。有一件事我会对SNI很谨慎,那就是浏览器支持。旧版浏览器和某些Android版本不支持SNI。可能值得研究细节。 – 2012-02-02 15:47:09
他们有不同的域或高于一切的证书中的其它一样吗? – 2012-02-02 13:18:58
想法是使用相同的域,并根据为其签署证书的服务器区分用户。 – Janon 2012-02-02 15:46:40