簡體   English   中英

HTTP代理(Node.js)未執行正確的SSL驗證

[英]HTTP Proxy( Node.js) Not Performing Proper SSL Verification

我需要創建一個能夠處理SSL證書驗證的代理服務器。 我一直在使用Node.js的http-proxy庫來處理ssl驗證。 我的問題是,代理服務器在驗證客戶端是否具有正確的憑據方面不做任何事情。

我有一個代理服務器,並且我通過了具有ssl certRequire = truerejectUnauthroized = true的服務器options 但是,客戶端無需證書/密鑰就能連接到服務器,我不確定為什么。

這是我的代碼:

 var options = {
        ssl: {
        key:   fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-key.pem'),
        cert: fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-crt.pem'),
        requestCert: true,
        rejectUnauthorized: true
    }   
};

var proxy = new httpProxy.createProxyServer(options);



http.createServer(function (req, res) {
  setTimeout(function () {
    proxy.web(req, res, {
        target: {
        host: 'localhost',
        port: 9002
        }
});
  }, 200);
}).listen(8002);

//Server
http.createServer(function (request, response) {

//Handles the response
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('request successfully proxied to server');
response.end();


response.on('data', function(data){
    console.log(data);
});

response.on('end', function(){
    console.log("end");
});

response.on('error', function(err){
    console.log(err);
});
}).listen(9002);

如果您需要任何說明,請告訴我!

***** UPDATE *****

這是刪除ssl對象后的代碼。

var options = {
        key: fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-key.pem'),
        cert: fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-crt.pem'),
        requestCert: true,
        rejectUnauthorized: false

};

即使這樣,我仍然可以在沒有證書的情況下連接到代理。

 var options = {
        ssl: {
        key:   fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-key.pem'),
        cert: fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-crt.pem'),
        requestCert: true,
        rejectUnauthorized: true
    }   
};

問題是您的嵌套-這些選項在ssl對象中不存在,它們是options中的頂級項。 取出內部ssl部分,然后將這些選項移到頂層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM