اذهب إلى المحتوى

السؤال

نشر

أستخدم request لإرسال طلب https إلى خادم الويب، ولكن مهما أقوم بتمرير متغيرات أحصل على الخطأ التالي:

CERT_HAS_EXPIRED

وهذا هو الكود الخاص بإرسال الطلب:

request({
        url: 'https://www.example.com/api/users',
    }, function(error, response, body) {
        if(!error && response.statusCode == 200) {
            res.json(JSON.parse(body));
        } else {
           res.json(response.statusCode, {'error': 'error'})
        }
});

حاولت إضافة المتغيّر strictSSL: false إلى الطلب ولكن بقي نفس الخطأ. كيف يمكنني حل هذه المشكلة؟

Recommended Posts

  • 1
نشر

إن تعطيل HTTPS / SSL / TLS خطير جداً، يمكنك استخدام agent مع rejectUnauthorized وبذلك يتم التعطيل على مستوى الطلب التابع لهذا الموقع بدلاً من تعطيل الفحص على البيئة بأكملها وهو أكثر أماناً:

var request = require('request');

const options = {
  host: 'www.example.com'
, port: '443'
, path: '/'
, rejectUnauthorized: false
};

const agent = new https.Agent(options);

request({
  url: "https://www.example.com/api/users"
, method: 'GET'
, agent: agent
}, function (err, resp, body) {
  // ...
});

أما في حال كنت تستخدم شهادة موقّعة ضمنياً، يمكنك إضافة التالي إلى العميل agent:

options.ca = [ selfSignedRootCaPemCrtBuffer ];

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...