Tamim Fahed نشر 24 يوليو 2021 أرسل تقرير نشر 24 يوليو 2021 أستخدم 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 إلى الطلب ولكن بقي نفس الخطأ. كيف يمكنني حل هذه المشكلة؟ 1 اقتباس
1 Sam Ahw نشر 24 يوليو 2021 أرسل تقرير نشر 24 يوليو 2021 إن تعطيل 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 ]; اقتباس
0 عبدالباسط ابراهيم نشر 24 يوليو 2021 أرسل تقرير نشر 24 يوليو 2021 يمكنك استخدام الطريقة التي اقترحها المدرب @Sam Ahw وهي استخدام agent ولكن بطريقة أكثر إيجازاً وهي كالتلي request({ url: url, agentOptions: { rejectUnauthorized: false } }, function (err, resp, body) { // ... }); اقتباس
-2 محمد أبو عواد نشر 24 يوليو 2021 أرسل تقرير نشر 24 يوليو 2021 أضف هذا في الجزء العلوي من الملف الخاص بك: process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; يؤدي هذا السطر الى تعطيل فحص HTTPS / SSL / TLS عبر بيئة node.js بأكملها اقتباس
السؤال
Tamim Fahed
أستخدم 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 إلى الطلب ولكن بقي نفس الخطأ. كيف يمكنني حل هذه المشكلة؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.