এনপিএম ইআরআর! কোড UNABLE_TO_GET_ISSUER_CERT_LOCALLY


117

আমি প্রতিক্রিয়ার অ্যাপ্লিকেশন তৈরি করার সমস্ত উপায় চেষ্টা করছি। আমি মাভেন দিয়ে চেষ্টা করেছি এবং এখন ফেসবুক ইনকিউবেটরের কাছ থেকে ক্রেট-রিঅ্যাক্ট-অ্যাপ বিল্ড সিস্টেমের চেষ্টা করছি।

আমি যখন create-react-app my-appএনপিএম এনভায়রনমেন্টে কমান্ডটি চালানোর চেষ্টা করেছি , এটি আমার ব্যক্তিগত সিস্টেমে কোনও সমস্যা ছাড়াই কাজ করেছে। তবে যখন আমি আমার কাজের পরিবেশে একই কমান্ডটি চেষ্টা করেছি, তখন আমি কমান্ড প্রম্পটে এই ত্রুটিটির মুখোমুখি হয়েছি

npm ERR! node v6.10.2
npm ERR! npm  v3.10.10
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

npm ERR! unable to get local issuer certificate
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

1
আমি sudoযখন দৌড়েছিলাম তখন আমিও ব্যবহার করতে পারি না npm install aws-sdk। দৌড়ানো sudo npm install aws-sdkআমার জন্য এই ত্রুটি ঘটায় caused
কাইল ব্রিজেনস্টাইন

উত্তর:


296

ইন্টারনেট অনুসন্ধান থেকে একটি দ্রুত সমাধান ছিল npm config set strict-ssl falseভাগ্যক্রমে এটি কার্যকর হয়েছিল । তবে আমার কাজের পরিবেশের অংশ হিসাবে, আমি কঠোর-এসএসএল পতাকাটিকে মিথ্যাতে সেট করতে সীমাবদ্ধ।

পরে আমি একটি নিরাপদ এবং কাজের সমাধান পেয়েছি,

npm config set registry http://registry.npmjs.org/  

এটি পুরোপুরি কার্যকর হয়েছে এবং Happy Hacking!কঠোর-এসএসএল পতাকাটিকে মিথ্যা না করে আমি একটি সাফল্যের বার্তা পেয়েছি ।


2
আমিও কেবল এনপিএম সংগ্রহস্থলের HTTP সংস্করণটি ব্যবহার করতে ফিরে এসেছি (যেহেতু রেজিস্ট্রি.এনএমপিজেএসআরগ্রন্থের বিপরীতে ), কারণ আমার কাজের প্রক্সিটি সমস্যা সৃষ্টি করছে (এটি এমআইটিএম হিসাবে কাজ করে, শংসাপত্র যাচাইকরণের সমস্যা সৃষ্টি করে) একদিন আমি চিত্রিত করব শংসাপত্রের ইস্যুটি শেষ হয়েছে, তবে আমার কেবল একটি প্যাকেজ ডাউনলোড করার দরকার ছিল, এটি ডাং করুন!
রবার্ট ডন্ডন

1
আমি ভেবেছিলাম, আমার কাছে ইতিমধ্যে এই সেটিংটি রয়েছে তবে কাছাকাছি তাকালে আমার কাছে HTTP ( registry.npmjs.org ) এর পরিবর্তে https ছিল । Http এ পরিবর্তিত হয়েছে এবং এটি কাজ করেছে।
আশীষ বাজপাই

আমার জন্য আমি এটি করেছি কিন্তু আমি sudoযখন দৌড়ালাম তখনও আমি ব্যবহার করতে পারিনি npm install aws-sdk। দৌড়ানো sudo npm install aws-sdkআমার জন্য এই ত্রুটি ঘটায় caused
কাইল ব্রিজেনস্টাইন

তাই আমি দৌড়ে আমি এই পোস্টে দেখানো একই ভুল পেয়ে ছিল npm config set strict-ssl falseএবং npm config set registry http://registry.npmjs.org/ কিন্তু আমি এখনও চলমান ত্রুটি পেয়ে ছিল sudo npm install aws-sdkকিন্তু যখন আমি বাদ sudoঅংশ এবং মাত্র দৌড়ে npm install aws-sdkএটা কাজ করে।
কাইল ব্রিজেনস্টাইন

আমার জন্য সেটিংস ছাড়া অন্য কিছু npm config set strict-ssl falseকাজ করে না। আমি অনুভব করি এটি এমন একটি বিষয় node.jsএবং npmদলটির উচিত যদি তাদের পক্ষে এটি ঠিক নাযোগ্য হয় তবে একটি উপযুক্ত কাজ নিয়ে সন্ধান করা উচিত এবং ডকুমেন্ট করা উচিত।
রিনোটম

23

যা ঘটতে পারে তা হ'ল আপনার সংস্থাটি নির্দিষ্ট ট্র্যাফিকটি ডিক্রিপ্ট করে এবং তাদের শংসাপত্রের সাথে এটি পুনরায় এনক্রিপ্ট করে (যা সম্ভবত আপনি ইতিমধ্যে আপনার কীচেন বা বিশ্বস্ত রুট শংসাপত্রে রয়েছেন)

আপনি যদি নোড 7 বা তার পরে ব্যবহার করছেন তবে আমি এই ফিক্সটি নোড এবং নোড-জিপের সাথে সামঞ্জস্যপূর্ণ বলে খুঁজে পেয়েছি (উইন্ডোজের জন্য আপনাকে এটি আলাদাভাবে করতে হবে তবে মূলত আপনাকে কেবল এই পরিবেশের পরিবর্তনশীল যুক্ত করতে হবে):

export NODE_EXTRA_CA_CERTS="absolute_path_to_your_certificates.pem" (উইন্ডোজে আপনার উদ্ধৃতিগুলি সরিয়ে ফেলতে হবে - মন্তব্যগুলি দেখুন)

পেম ফাইলটিতে একাধিক শংসাপত্র থাকতে পারে: https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file

আপনার শংসাপত্রগুলি যথাযথ পেম ফর্ম্যাটে রয়েছে তা নিশ্চিত করুন (আপনার আসল লাইন বিরতি আক্ষরিক নয় \n)

আমি আপেক্ষিক পাথ ( .বা ~) এর সাথে কাজ করার জন্য এটি পেতে পারি না

এই ফিক্সটি মূলত এনপিএম এবং নোড-জিপকে নিয়মিত সিএগুলির বিপরীতে চেকটি ব্যবহার করতে বলে, তবে এটি শংসাপত্রটি যখন এটি জুড়ে আসে তখনও অনুমতি দেয়

আদর্শভাবে আপনি আপনার সিস্টেমের বিশ্বস্ত শংসাপত্রগুলি ব্যবহার করতে সক্ষম হবেন, তবে দুর্ভাগ্যক্রমে এমনটি হয় না।


গ্রেট। আপনার বিস্তারিত ব্যাখ্যার জন্য ভোট দিন। আমাকে আরও ভালভাবে বুঝতে সাহায্য করেছে। সুন্দর তথ্য।
ভিসু

2
উইন্ডোজে, আমি কোটগুলি সরিয়ে না ফেলে পাথ কাজ করে না।
ক্রিস অ্যান্ডারসন

1
ব্লুকোটের কারণে আমার এই সমস্যা রয়েছে এবং প্রতি কয়েকমাস আমাকে আপনার উত্তরটি উল্লেখ করতে হবে। কঠোর এসএসএল অক্ষম করার চেয়ে অবশ্যই একটি ভাল সমাধান - আপনাকে ধন্যবাদ!
জর্ডান গ্রে

উইন্ডোজে আমি .pem ফাইলটি কোথায় পেতে পারি। আমি পেইম ফাইলটির জন্য পুরো হার্ডডিস্কটি অনুসন্ধান করেছিলাম উইন্ডোজ \ সিস্টেম 32 এর ভিতরে কিছু স্তর রয়েছে। তবে এটি কাজ করছে না
সংচিত জৈন

10

এইচটিটিপিতে এনপিএম রেপো ইউআরএল পরিবর্তন করা দ্রুত-ফিক্স হিসাবে কাজ করে, তবে আমি এইচটিটিপিএস ব্যবহার করতে চেয়েছিলাম।

আমার ক্ষেত্রে, আমার নিয়োগকর্তা (জেডএসকেলার) এর প্রক্সিটি সমস্যা সৃষ্টি করছিল (এটি একটি এমআইটিএম হিসাবে কাজ করে যা শংসাপত্র যাচাইকরণের সমস্যা সৃষ্টি করে)

আমি ভুলে গিয়েছিলাম এমন একটি স্ক্রিপ্ট পেয়েছি যা এই এবং গিটকে সহায়তা করে (এইচটিটিপিএসের মাধ্যমে গিটহাবের রেপোসের ক্লোনিংয়ের জন্য একই সমস্যা ছিল) এবং এটি আমার ব্যবহারের জন্য কাঁটাচামচ করে

মূলত, এটি গিটের জন্য নিম্নলিখিতটি করে:

git config --global http.proxy http://gateway.zscaler.net:80/
git config --system http.proxy http://gateway.zscaler.net:80/

এবং নোডের জন্য, এটি proxy=http://gateway.zscaler.net:80/শেষের দিকে যুক্ত করেc:\Users\$USERNAME\npm\.npmrc

এটি আমার জন্য সমস্যাটি সমাধান করেছে।


2
আপনার সংস্থাটি কোন জেডএস ক্লাউডটি কনফিগার করেছে তা আপনি দেখতে চাইতে পারেন Bas মূলত, ip.zscaler.comক্লাউডটির নামটি পরীক্ষা করে URL এ সেট করুন। উদাহরণস্বরূপ: এটি যদি বলে zscalertwo.netতবে নীচের URL টি দিয়ে প্রতিস্থাপন করুন:gateway.zscalertwo.net
রাহুল ভরদ্বাজ

6

প্রতিটি সমাধান চেষ্টা করার পরে আমি খুঁজে পেতে পারি:

  • কঠোর এসএসএল বন্ধ করা হচ্ছে: npm config set strict-ssl=false
  • Https এর পরিবর্তে HTTP এ রেজিস্ট্রি পরিবর্তন করা হচ্ছে: npm config set registry http://registry.npmjs.org/
  • আমার ক্যাফিল সেটিং পরিবর্তন করা হচ্ছে: npm config set cafile /path/to/your/cert.pem
  • অজানা সিএ প্রত্যাখ্যান করা বন্ধ করুন: set NODE_TLS_REJECT_UNAUTHORIZED=0

যে সমাধানটি এখন আমার পক্ষে সবচেয়ে ভাল কাজ করছে বলে মনে হচ্ছে তা হল NODE_EXTRA_CA_CERTS এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করা যা বিদ্যমান সিএগুলিকে আপনার .npmrc ফাইলে ক্যাফিল বিকল্পটি প্রতিস্থাপনের পরিবর্তে প্রসারিত করে। আপনি এটি আপনার টার্মিনালে প্রবেশ করে সেট করতে পারেন:NODE_EXTRA_CA_CERTS=path/to/your/cert.pem

অবশ্যই, প্রতিবার এই পরিবর্তনশীলটি সেট করা বিরক্তিকর হতে পারে, তাই আমি এটিকে আমার বাশ প্রোফাইলে যুক্ত করেছি যাতে প্রতিবার টার্মিনালটি খোলার সময় এটি সেট হয়ে যায়। আপনার যদি ইতিমধ্যে কোনও ~/.bash_profileফাইল না থাকে তবে একটি তৈরি করুন। তারপরে সেই ফাইলটির শেষে অ্যাড করুন export NODE_EXTRA_CA_CERTS=path/to/your/cert.pem। তারপরে, আপনার .npmrc এ ক্যাফিল সেটিংটি সরান।


চতুর্থ বিকল্পটি ছিল কবজ; process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0;
টমডেমুয়েট

5

বিশ্বাস করুন, এটি আপনার পক্ষে কাজ করবে:

    npm config set registry http://registry.npmjs.org/  

যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে। প্রশ্নের উত্তর কীভাবে দেওয়া যায় সে সম্পর্কে আরও পড়তে দয়া করে কীভাবে উত্তর দেবেন দয়া করে পরামর্শ করুন
আর্টোগ

4

একই ত্রুটি ছিল। দেখে মনে হচ্ছে এটি এসএসএল শংসাপত্রের সাথে সম্পর্কিত। আপনি যদি সর্বজনীন প্যাকেজগুলির জন্য এনপিএম ব্যবহার করছেন (এইচটিটিপিএসের সুরক্ষার প্রয়োজন নেই) আপনি নিম্নলিখিত কমান্ডের সাহায্যে কঠোর এসএসএল কী বৈধতা বন্ধ করতে পারেন।

আপনি কেবলমাত্র একবার প্রকাশ্যে কয়েকটি উপলভ্য প্যাকেজ ইনস্টল করতে চাইলে এটি সবচেয়ে সহজ সমাধান হতে পারে।

npm config set strict-ssl=false

5
এটি করার অন্তর্নিহিত ঝুঁকি রয়েছে, আপনি যদি মাঝারি আক্রমণে কোনও নিগ্রহ মানুষটির শিকার হন তবে ডাউনলোড করার সাথে সাথে প্যাকেজটি পরিবর্তন করা যেতে পারে।
অ্যালেক্স কীস্মিত

@ অ্যালেক্সকি স্মিথ আপনি ঠিক বলেছেন তবে, প্রতিক্রিয়াগুলি বেশ কম। এটি কারও কারও জন্য একমাত্র বিকল্প হতে পারে। ক্যাভেট এমপোটার
জেসন গাইজার

1

আমি এনপিএম আপডেট করার চেষ্টা করার সময় আমার এই ত্রুটি হয়েছিল, তবে এডাব্লুএস লিনাক্সে yum থেকে সত্যই একটি পুরানো সংস্করণ (1.3.6!) ইনস্টল করা আছে। আমি ম্যানুয়ালি একটি নতুন এনপিএম সংস্করণ ইনস্টল করতে সক্ষম হয়েছি এবং সবকিছু প্রতিকার করা হয়েছিল।


0

নীচের কোডটি আমার পক্ষে নিখুঁতভাবে কাজ করেছে কেবলমাত্র পরিবর্তে https করে

npm config set registry http://registry.npmjs.org/  

0

আমার ক্ষেত্রে, এক পর্যায়ে আমি আমার গ্লোবাল কনফিগারেশনটি একটি প্রকল্পের জন্য তৈরি একটি শংসাপত্র ব্যবহার করার জন্য সেট করেছিলাম।

npm config list

/path/to/global/.npmrc
NODE_EXTRA_CA_CERTS = "./certs/chain.pem"

আমি ফাইলটি খুললাম, লাইনটি সরিয়ে npm installআবার কাজ করেছি ।


0

নীচের ত্রুটি পেয়েছি

পিএস সি: \ ব্যবহারকারীগণ \ সিএইচআরপি \ নথিগুলি H গিটিহাব \ ভ্যু-এনউজেজেস-ঘন্টা-ট্র্যাকিং> এনপিএম ইনস্টল ভিউ এনপিএম ইআরআর! কোড UNABLE_TO_GET_ISSUER_CERT_LOCALLY এনপিএম ইআরআর! ত্রুটিযুক্ত UNABLE_TO_GET_ISSUER_CERT_LOCALLY এনপিএম ইআরআর! https://registry.npmjs.org/vue অনুরোধ ব্যর্থ হয়েছে, কারণ: স্থানীয় ইস্যুকারী শংসাপত্র পেতে অক্ষম

এনপিএম ইআরআর! এই রানের একটি সম্পূর্ণ লগ পাওয়া যাবে: এনপিএম ইআরআর!
সি: \ ব্যবহারকারীগণ \ সিএইচপি \ অ্যাপডেটা \ রোমিং \ npm-cache_logs \ 2020-07-29T03_22_40_225Z-debug.log PS সি: \ ব্যবহারকারীদের \ সিএইচপি \ নথিগুলি \ গিটহাব \ ভ্যু-এনওজেএস-ঘন্টা-ট্র্যাকিং> পিএস সি: \ ব্যবহারকারীগণ \ chpr \ ডকুমেন্টস \ গিটহাব \ ভ্যু-এনওজেএস-ঘন্টা-ট্র্যাকিং> এনপিএম ইআরআর!
সি: \ ব্যবহারকারী \ chpr \ AppData \ রোমিং \ npm-cache_logs \ 2020-07-29T03_22_40_225Z-debug.log

নীচের কমান্ডটি সমস্যার সমাধান করেছে:

npm config set strict-ssl false
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.