如何让NodeJS代理Jetty Proxy等客户端证书

时间:2016-07-28 19:33:06

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

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

根据我的理解,Java Servlet规范要求Servlet容器提取node-http-proxy

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

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

1 个答案:

答案 0 :(得分:0)

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

要正确连接代理服务器,我必须将ca,pfx和passphrase传递给代理连接器。

const ca = ...
const pfx = ...
const passphrase = ...

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

执行此操作后,代理服务器能够提取并验证证书。