2013-05-23 47 views
5

Tôi đang viết một ứng dụng Node.js và đang cố tích hợp máy chủ ADFS để nhận xác thực. Đối với điều đó, tôi đang sử dụng wstrust-client và sử dụng URL máy chủ ADFS làm điểm cuối của tôi. Mã của tôi cho đến nay là:HTTP 400: Lỗi yêu cầu không hợp lệ trong yêu cầu HTTPS ADFS

app.get('/login', function(req, res) { 
    trustClient.requestSecurityToken({ 
     scope: 'https://mycompany.com', 
     username: "username", 
     password: "password", 
     endpoint: 'https://[adfs server]/adfs/services/trust/13/usernamemixed' 
    }, function (rstr) { 
     // Access the token 
     var rawToken = rstr.token; 
     console.log('raw: ' + rawToken); 
    }, function(error) { 
     console.log(error) 
    }); 
});  

Tôi yêu cầu https qua wstrust-client

mã của tôi trong wstrustclient.js cho đến nay là:

var req = https.request(post_options, function(res) { 
    res.setEncoding('utf8'); 
    res.on('data', function(data) { 
     console.log("Entered res") 

     var rstr = { 
      token: parseRstr(data), 
      response: res, 
     }; 

     callback(rstr); 
    }); 
}); 

req.write(message); 
req.end(); 
req.on('error', function (e) { 
console.log("******************************"); 
console.log(e); 
console.log("******************************"); 

Tuy nhiên, nó được ném lỗi này:

****************************** 
{ [Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE] 
    stack: 'Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\n 
    at SecurePair.<anonymous> (tls.js:1253:32)\n  
    at SecurePair.EventEmitter.emit (events.js:91:17)\n  
    at SecurePair.maybeInitFinished (tls.js:865:10)\n  
    at CleartextStream.read [as _read] (tls.js:416:15)\n 
    at CleartextStream.Readable.read (_stream_readable.js:231:10)\n 
    at EncryptedStream.write [as _write] (tls.js:329:25)\n 
    at EncryptedStream.Writable.write (_stream_writable.js:176:8)\n 
    at write (_stream_readable.js:496:24)\n 
    at flow (_stream_readable.js:506:7)\n  
    at Socket.pipeOnReadable (_stream_readable.js:538:5)' } 
    ****************************** 
    ****************************** 
    { [Error: read ECONNRESET] 
     stack: 'Error: read ECONNRESET\n 
     at errnoException (net.js:846:11)\n 
     at TCP.onread (net.js:508:19)', 
     code: 'ECONNRESET', 
     errno: 'ECONNRESET', 
     syscall: 'read' } 
    ****************************** 

Khi tôi duyệt cùng một URL điểm cuối trong trình duyệt, nó sẽ ném HTTP 400: Bad Request

Tôi biết rằng đó là lỗi loại SSL và lỗi đó là từ phía máy chủ. Tuy nhiên, tôi không biết tại sao nó ném lỗi và những gì có thể là sai phía máy chủ. Tôi cần thay đổi điều gì?

Trả lời

4

Theo hướng dẫn OpenSSL here:

21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate no signatures could be verified because the chain contains only one certificate and it is not self signed.

Với ý nghĩ đó, có vẻ như bạn có thể cần phải đăng ký chứng chỉ của bạn.

Các vấn đề liên quan