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