Node.js - 在运行时动态更改 HTTPS 服务器的 SSL 证书

标签 node.js ssl https handshake

我正在 node 中构建一个 HTTPS 代理。基本上,我允许人们为我的代理机器(设置了通配符 DNS)设置一个 DNS CNAME 别名,并将他们的 SSL 证书导入到我的应用程序中(就像 AWS Elastic Load Balancer 那样),这样他们的 CNAME 主机名在每个请求中都得到适当的保护和识别。

现在我在代理端工作,我正在尝试找到一种在与客户端进行 SSL 握手之前动态加载正确证书的方法。工作流程是:

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

有办法吗?

最佳答案

开始吧:使用 SNI in node应该让它发挥作用。

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

关于Node.js - 在运行时动态更改 HTTPS 服务器的 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924770/

相关文章:

.htaccess - 从 http 到 https - htaccess 和 URL 重写 - 重定向错误太多

java - 当存在其他安全约束时,传输保证 secret 将被忽略

javascript - 如何在 Knex JS 中使用 IS NOT NULL

javascript - 如何在模态视图中访问对象

javascript - 如何在实时服务器上上传 nodejs 项目或安装 nodejs 和 npm 模块

node.js - 让 express.js 或 Node 接受端口 443 上的 http 连接

java - 如何发出 HTTP 或 HTTPS 请求(强调 "or")

javascript - 如何使用 webpack 部署 MERN 项目

php - 如何构建 PHP/Node 代理以在 https 网站上呈现外部 http 图像?

security - 如何在 Tomcat 上更新 ssl 证书?