我正在编写一个将替换this的NodeJS代理。我正在使用Java Jetty Proxy。剩下的唯一部分是将原始客户端证书传递给代理服务器。
根据我的理解,Java Servlet规范要求Servlet容器提取node-http-proxy。
在将请求代理到新服务器时,我不确定Servlet容器如何处理属性。我认为它以某种方式将它们作为标题或通过其他方式附加它们。
有谁知道这些属性(特别是javax.servlet.request.X509Certificate
)如何在代理的HTTPS请求中传递?第二,如何使用NodeJS实现相同的功能。
答案 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) {});
执行此操作后,代理服务器能够提取并验证证书。