Node.js – 在运行时dynamic更改HTTPS服务器的SSL证书

我正在build立一个HTTPS代理node 。 基本上,我允许用户为我的代理服务器设置一个DNS CNAME别名,并将他们的SSL证书导入到我的应用程序中(例如AWS Elastic Load Balancer),以便他们的CNAME主机名得到适当的保护,每一个请求都被客户认可。

现在我正在代理端工作,我试图find一种方法来在与客户端的SSL握手之前dynamic地加载正确的证书。 工作stream程是:

  1. 服务器收到新的请求
  2. 获取客户端请求的主机名(即用户设置的DNS CNAME别名)
  3. 加载属于该主机名的正确证书
  4. 在当前请求中使用加载的证书 (需要帮助)
  5. 握手(加载的证书 – 因请求而异)

有没有办法做到这一点?

在这里我们去: 在节点中使用SNI应该使它工作。

问题是并不是所有的客户端(浏览器或库)都支持它。