【问题标题】:How to get NodeJS to proxy Client Certificates like Jetty Proxy如何让 NodeJS 代理客户端证书,如 Jetty Proxy
【发布时间】:2016-07-28 19:33:06
【问题描述】:

我正在编写一个 NodeJS 代理来替换 Java Jetty Proxy。我正在使用node-http-proxy。剩下的唯一部分是将原始客户端证书传递给代理服务器。

据我了解,Java Servlet 规范要求 Servlet 容器拉取Client Certificate from an HTTPS request and store that as an attribute on the HttpServletRequest

我不确定 Servlet 容器在将请求代理到新服务器时如何处理属性。我认为它以某种方式将它们作为标题或通过其他方式附加。

有谁知道这些属性(特别是 javax.servlet.request.X509Certificate)是如何在代理的 HTTPS 请求上传递的?第二,如何使用 NodeJS 实现相同的功能。

【问题讨论】:

    标签: java node.js http-proxy node-http-proxy


    【解决方案1】:

    如果可以帮助其他人...问题原来是我使用的节点模块(node-http-proxy)没有重用HTTP服务器连接证书。也就是说,当尝试创建与代理服务器的连接时,它使用的是默认(生成的)证书。

    要正确连接代理服务器,我必须将 ca、pfx 和密码短语传递给代理连接器。

    const ca = ...
    const pfx = ...
    const passphrase = ...
    
    // proxy connection
    server.web(req, res, { ca: ca, pfx: pfx, passphrase: passphrase }, function(err) {}); 
    

    这样做后,代理服务器能够提取并验证证书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多