এটা খুবই করতে প্রলুব্ধ হতে পারে rejectUnauthorized: false
বা process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
কিন্তু এটা না! এটি মধ্য আক্রমণগুলিতে আপনাকে মানুষের সামনে তুলে ধরে।
অন্যান্য উত্তরগুলি সঠিক যে সমস্যাটি সত্য যে আপনার সার্টটি "একটি মধ্যস্থতাকারী CA দ্বারা স্বাক্ষরিত হয়েছে" এর মধ্যে রয়েছে lies এটির একটি সহজ সমাধান রয়েছে, এটির ssl-root-cas
জন্য নোডে কোনও অতিরিক্ত সিএ বা ইনজেকশন দেওয়ার মতো কোনও তৃতীয় পক্ষের লাইব্রেরির প্রয়োজন হয় না ।
নোড সমর্থন বিকল্পের বেশিরভাগ https ক্লায়েন্টগুলি আপনাকে অনুরোধ অনুযায়ী একটি সিএ নির্দিষ্ট করার অনুমতি দেয় যা সমাধান করবে UNABLE_TO_VERIFY_LEAF_SIGNATURE
। নোডের অন্তর্নির্মিত https
মডিউলটি ব্যবহার করে এখানে একটি সাধারণ উদাহরণ ।
import https from 'https';
const options = {
host: '<your host>',
defaultPort: 443,
path: '<your path>',
// assuming the bundle file is co-located with this file
ca: readFileSync(__dirname + '/<your bundle file>.ca-bundle'),
headers: {
'content-type': 'application/json',
}
};
https.get(options, res => {
// do whatever you need to do
})
তবে, আপনি যদি আপনার হোস্টিং সার্ভারে এসএসএল সেটিংস কনফিগার করতে পারেন তবে সর্বোত্তম সমাধান হ'ল আপনার হোস্টিং সরবরাহকারীর মধ্যে অন্তর্বর্তী শংসাপত্র যুক্ত করা। এইভাবে ক্লায়েন্টের অনুরোধকারীকে কোনও সিএ নির্দিষ্ট করার দরকার নেই, কারণ এটি সার্ভারে অন্তর্ভুক্ত রয়েছে। আমি ব্যক্তিগতভাবে নেমচিপ + হিরকু ব্যবহার করি। আমার জন্য কৌশলটি ছিল একটি দিয়ে .crt ফাইল তৈরি করা cat yourcertificate.crt bundle.ca-bundle > server.crt
। আমি তখন এই ফাইলটি খুললাম এবং প্রথম শংসাপত্রের পরে একটি নতুন লাইন যুক্ত করেছি। আপনি এখানে আরও পড়তে পারেন
https://www.namecheap.com/support/knowledgebase/article.aspx/10050/33/installing-an-ssl-certificate-on-heroku-ssl