2012-06-18 31 views
10

Tôi đang cố gắng truy cập trang web qua nút https.request(). Làm như vậy dẫn đến lỗi khi đăng nhập bằng mã của tôi. Sử dụng các module yêu cầu nút có cùng một kết quả:Lỗi SSL trong nútjs

vấn đề với yêu cầu: 140398870042432: lỗi: 140773F2: thói quen SSL: SSL23_GET_SERVER_HELLO: SSLv3 nhắn bất ngờ cảnh báo: s23_clnt.c: 658:

Sau đây cho biết phiên bản SSL sai đang được sử dụng, nhưng tôi không thể tìm cách thay đổi phiên bản: curl error: "sslv3 alert unexpected message". Sử dụng curl từ thiết bị đầu cuối của tôi trả về một phản ứng như không nhấn URL trong trình duyệt của tôi (nó là một trang đăng nhập). Mã của tôi là dưới đây.

var request = require('request') 
request.get("https://icmserver.wit.ie/balance", function(err, res, body) { 
    if (err) { 
     return console.log(err) 
    } 
    return body; 
}); 

Có ai có ý tưởng gì có thể xảy ra ở đây không?

+0

Bạn có thể cho chúng tôi biết mã chính xác bạn đang sử dụng không? Nó sẽ giúp đỡ nếu chúng ta có thể tái tạo vấn đề. – Ashe

+0

Cảm ơn Len, Đây là mã của tôi: var yêu cầu = require ('yêu cầu') request.get ("https://icmserver.wit.ie/balance", function (err, res, cơ thể) { nếu (err) { \t trả về bàn điều khiển.log (err) } thân trả; }); Nó tiếp tục ghi nhật ký lỗi SSL. – eshortie

+0

Tôi lưu ý rằng khi truy cập trang web trong Chrome, tôi nhận được: "* Kết nối phải được thử lại bằng SSL 3.0. Điều này thường có nghĩa là máy chủ đang sử dụng phần mềm rất cũ và có thể có các vấn đề bảo mật khác." -in SSL không hỗ trợ SSL 3. – Ashe

Trả lời

13

Hãy thử sử dụng options = { secureProtocol: 'SSLv3_method' } trong yêu cầu bạn đang thực hiện.

+0

Cảm ơn SuperShalabi đã hoạt động, yêu cầu sẽ trả lại dữ liệu ngay bây giờ! – eshortie

+0

Làm rõ: Tùy chọn secureProtocol có trong https.Agent mới. –

+3

chỉ để làm rõ, SSLv3 bị hỏng, bạn không được sử dụng nó. –

12

Chúng tôi cũng gặp vấn đề tương tự. Theo mặc định, yêu cầu sử dụng https.globalAgent. Vì vậy, chúng tôi đã thêm mã ở gần đầu tập lệnh của chúng tôi.

var https = require('https'); 
https.globalAgent.options.secureProtocol = 'SSLv3_method'; 

Tất cả mọi thứ đột ngột hoạt động.

+0

Tôi đã không mong đợi điều này để làm việc như tôi đã nghĩ rằng yêu cầu https ở những nơi khác nhau do đó sẽ không có cùng globalAgent, nhưng alas nó đã làm việc. Cảm ơn! – GotDibbs

+0

Tôi nhận được lỗi SSL23_GET_SERVER_HELLO: giao thức không xác định và googled ngón tay của tôi đẫm máu cho đến khi tôi cuối cùng đã tìm thấy giải pháp này. Hy vọng rằng sẽ tái lập điều này để những người khác có được thông tin nhanh hơn. –

+0

Tôi không biết tại sao câu trả lời này lại có nhiều phiếu bầu hơn. Nó có thể nguy hiểm để thiết lập giao thức trên toàn cầu. Nếu câu trả lời được chấp nhận không hoạt động cho bạn, thay vì đặt giao thức trên toàn cầu, vui lòng đọc kỹ tài liệu để xem cách thiết lập giao thức: http://nodejs.org/api/https.html#https_https_request_options_callback – Sylvain

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