Request: الاتصال بنقطة نهاية https والحصول على: لا يتطابق اسم المضيف / IP مع الأسماء البديلة للشهادة

تم إنشاؤها على ١٨ سبتمبر ٢٠١٥  ·  12تعليقات  ·  مصدر: request/request

أحاول الاتصال بخدمة https REST خارجية على heroku من مضيفي المحلي باستخدام الكود التالي:

request(
            {
                url: config.get('host') +req.originalUrl,
                method: req.method,
            }, function (error, response, body) {

            })

تلقيت الخطأ التالي في رد الاتصال:

لا يتطابق اسم المضيف / IP مع الأسماء البديلة للشهادة: "المضيف: المضيف المحلي. ليس في الأسماء البديلة للشهادة: DNS: _. herokuapp.com ، DNS: herokuapp.com "
المضيف: المضيف المحلي. ليس في الأسماء البديلة للشهادة: DNS: _. herokuapp.com ، DNS: herokuapp.com

إذا قمت بالاتصال بنفس الخدمة المثبتة محليًا ، فكل شيء يعمل بشكل صحيح ، لذلك يجب أن يكون مرتبطًا بـ https.

أي مساعدة؟

التعليق الأكثر فائدة

هذه الاشياء مروعة

ال 12 كومينتر

ما هو عنوان URL الدقيق لطلبك config.get('host') +req.originalUrl ؟

أنا أحصل على هذا أيضا. أنا أستخدم شهادة موقعة ذاتيًا ولا أرغب في التحقق من اسم المضيف. لدي هذا في طلباتي

agentOptions: {
        ca: fs.readFileSync('ca.cert.pem')
    }

كيف يمكنك تعيين ignoreHostname؟

هل حاولت ضبط المتغير رفض غير مصرح به على خطأ؟

طلب "" "" ({
url: config.get ('host') + req.originalUrl ،
الطريقة: req.method ،
رفض غير مصرح به: خطأ
} ،
الوظيفة (خطأ ، استجابة ، جسم) {

        })```

"" "

سيكون من الرائع أن يكون rejectUnauthorized: false موجودًا في مستندات الصفحة الأولى في مكان ما.

ألا يجعلك rejectUnauthorized: false تقبل أي شهادة خادم؟ إذا كان الأمر كذلك ، فأنا لا أعتبره حلاً صالحًا.
أرغب في التحقق من الخادم من خلال التأكد من توقيع الشهادة بواسطة مرجع مصدق موثوق به (في حالتي ، هو المرجع المصدق الخاص بي). لا أريد أن أسكت الأمر برمته وأجعله غير آمن.

هذه الاشياء مروعة

عليك ان تطابق شهادة الخادم CommonName إلى العميل hostname .

يجب عليك مطابقة CommonName الخاص بشهادة الخادم مع اسم مضيف العميل.

لماذا هو أن هذه القضية؟ لماذا يهتم العميل باسم مضيفه الموجود في شهادة الخوادم؟ هذا عن مصادقة الخادم. شكرا

لمعلوماتك لقد تلقيت هذا الخطأ أثناء إعادة توجيه الطلبات ، استخدمت request({host: 'something.com'... headers: req.headers... ما لم أدركه في البداية هو أنه في الرؤوس كان هناك host: 'localhost' ، والذي كان الجاني. لقد قمت باستبداله والآن يتحقق موافق.

أعتقد أنني أعالج نفس المشكلة. تلقيت الخطأ التالي أثناء استخدام العقدة 6.10.3 وطلب 2.88:

خطأ: لا يتطابق اسم المضيف / IP مع الأسماء البديلة للشهادة: "المضيف: https ليس في الأسماء البديلة للشهادة:

لقد تعقبت هذا وصولاً إلى رمز tls.js للعقدة. بطريقة ما ، "https". يتم تمريره باعتباره اسم المضيف عن طريق الطلب وصولاً إلى العقدة. إذا قمت بتعيين رفض غير مصرح به على خطأ ، فسيعمل الكود الخاص بي. لذلك أقوم بتمرير اسم المضيف الصحيح في عنوان URL.

أعتقد أنه يمكن التخفيف من ذلك باستخدام مفتاح api الذي يوفره المجال الهدف.

لمعلوماتك لقد تلقيت هذا الخطأ أثناء إعادة توجيه الطلبات ، استخدمت request({host: 'something.com'... headers: req.headers... ما لم أدركه في البداية هو أنه في الرؤوس كان هناك host: 'localhost' ، والذي كان الجاني. لقد قمت باستبداله والآن يتحقق موافق.

حل مشكلتي. لقد نسيت تعديل req.header وتغيير المضيف.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات