用于Linux中的Apache,其中每个使用ssl的域名都需要自己的ip地址。
如果使用node.js并且根本不使用Apache,这仍然是正确的吗?
答案 0 :(得分:3)
在node.js中也适用与Apache相同的限制 - 它们与您正在使用的特定服务器软件无关,它们是http和TLS / SSL协议中固有的。
话虽如此,有两种方法可以从单个IP地址为多个域运行SSL。我不知道node.js支持其中任何一个的状态,但对于第一个替代方案应该无关紧要。
首先,您可以获得一个涵盖您要使用的所有域名的SSL证书 - 如果它们是同一域的所有子域或使用Subject Alternative Names(SAN)的域,则为通配符如果他们不是。请注意,某些较旧的Web浏览器不支持SAN,尤其是某些智能手机。
其次,您可以使用Server Name Indication(SNI)配置多个SSL证书,因为它扩展了SSL协议,使主机名在完成密钥交换之前可供服务器使用。浏览器对SNI的支持不如SAN,特别是它不适用于Windows XP上的任何Internet Explorer版本。
答案 1 :(得分:1)
此链接显示了如何使用SNI方法使用nginx。
您也可以让nginx执行https和文件服务,并将其反向代理转换为node.js以进行api工作,如下所示: