npm ईआरआर! कोड UNABLE_TO_GET_ISSUER_CERT_LOCALLY


118

मैं प्रतिक्रिया एप्लिकेशन बनाने के सभी तरीकों की कोशिश कर रहा हूं। मैंने मावेन के साथ कोशिश की है और अब मैं फेसबुक इन्क्यूबेटर्स से क्रेट-रिएक्शन-ऐप बिल्ड सिस्टम के साथ कोशिश कर रहा हूं।

जब मैंने create-react-app my-appnpm के वातावरण में कमांड चलाने की कोशिश की , तो इसने बिना किसी मुद्दे के मेरी व्यक्तिगत प्रणाली पर काम किया। लेकिन जब मैंने अपने काम के माहौल में एक ही कमांड की कोशिश की, तो मुझे कमांड प्रॉम्प्ट पर इस त्रुटि का सामना करना पड़ा

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-sdksudo npm install aws-sdkमेरे लिए यह त्रुटि चल रही थी।
काइल ब्रिडेनस्टाइन

जवाबों:


296

इंटरनेट खोज से एक त्वरित समाधान था npm config set strict-ssl false, सौभाग्य से यह काम किया। लेकिन मेरे काम के माहौल के एक हिस्से के रूप में, मैं सख्त-एसएसएल ध्वज को झूठे पर सेट करने के लिए प्रतिबंधित हूं।

बाद में मुझे एक सुरक्षित और कारगर उपाय मिला,

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

इसने पूरी तरह से काम किया और मुझे Happy Hacking!सख्त-एसएसएल झंडे को झूठे रूप में स्थापित नहीं करके एक सफलता संदेश मिला ।


2
मैं भी, केवल NPM रिपॉजिटरी के HTTP संस्करण (जैसे कि रजिस्ट्री .npmjs.org के विपरीत ) का उपयोग करने के लिए वापस आ गया , क्योंकि मेरा काम प्रॉक्सी समस्या पैदा कर रहा था (क्योंकि यह MITM के रूप में कार्य करता है, प्रमाणन सत्यापन मुद्दों के कारण) एक दिन मैं आंकड़ा लूंगा प्रमाण पत्र जारी करें, लेकिन मुझे सिर्फ एक पैकेज डाउनलोड करने की आवश्यकता है, इसे खतरे में डालें!
रॉबर्ट डंडन 14

1
मैंने सोचा, मेरे पास पहले से ही यह सेटिंग है लेकिन जब करीब देखा गया तो मेरे पास http ( रजिस्ट्री . npmjs.org ) के बजाय https था । Http में बदल गया और यह काम कर गया।
आशीष बाजपेई

मेरे लिए मैंने ऐसा किया लेकिन sudoजब मैं भागा तो मैं भी इसका उपयोग नहीं कर सका npm install aws-sdksudo npm install aws-sdkमेरे लिए यह त्रुटि चल रही थी।
काइल ब्रिडेनस्टाइन

मुझे इस पोस्ट पर वही त्रुटि दिखाई दे रही थी जिससे मैं भाग गया था 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" (विंडोज में आपको उद्धरण हटाने की आवश्यकता हो सकती है - टिप्पणियां देखें)

pem फ़ाइल में कई प्रमाणपत्र हो सकते हैं: https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file

सुनिश्चित करें कि आपके प्रमाणपत्र उचित पेम प्रारूप में हैं (आपको वास्तविक लाइन ब्रेक की आवश्यकता है शाब्दिक नहीं \n)

मैं सापेक्ष पथों के साथ काम करने के लिए इसे प्राप्त नहीं कर सका ( .या ~)

यह फिक्स मूल रूप से npm और नोड-जिप को नियमित CA के खिलाफ चेक का उपयोग करने के लिए कहता है, लेकिन जब यह इसके पार आता है तो इस प्रमाणपत्र को भी अनुमति देता है।

आदर्श रूप से आप अपने सिस्टम के विश्वसनीय प्रमाणपत्रों का उपयोग करने में सक्षम होंगे, लेकिन दुर्भाग्य से ऐसा नहीं है।


महान। अपने विस्तृत विवरण के लिए वोट करें। मुझे बेहतर समझने में मदद की। अच्छी जानकारी।
विस्सु

2
विंडोज में, पथ तब तक काम नहीं करता जब तक कि मैं उद्धरणों को हटा नहीं देता।
क्रिस एंडरसन

1
मुझे BlueCoat के कारण यह समस्या है और मुझे हर महीने आपके जवाब का संदर्भ देना होगा। निश्चित रूप से सख्त एसएसएल को निष्क्रिय करने की तुलना में बेहतर समाधान — धन्यवाद!
जॉर्डन ग्रे

1
मैं विंडोज में .pem फ़ाइल कहाँ से ढूँढ सकता हूँ मैंने पूरी हार्डडिस्क को खोजा पेम फ़ाइल के लिए विंडोज \ सिस्टम 32 के अंदर कुछ स्तर गहरा पाया। लेकिन यह काम नहीं कर रहा है
संचित जैन

10

एनपीएम रेपो URL को HTTP पर बदलना त्वरित-फिक्स के रूप में काम करता है, लेकिन मैं HTTPS का उपयोग करना चाहता था।

मेरे मामले में, मेरे नियोक्ता (ZScaler) पर प्रॉक्सी समस्या पैदा कर रहा था (क्योंकि यह MITM के रूप में कार्य करता है, जिससे सत्यापन समस्याओं का कारण बनता है)

मैं भूल गया कि मुझे एक स्क्रिप्ट मिली है जो इस और जीआईटी के साथ मदद करती है (एचटीटीपीएस के माध्यम से गिटहब रिपोज को क्लोन करने के लिए एक ही मुद्दा था) और इसे मेरे उपयोग के लिए कांटा गया

मूल रूप से, यह git के लिए निम्नलिखित कार्य करता है:

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
आप यह जांचना चाहते हैं कि आपकी कंपनी किस ZS क्लाउड में कॉन्फ़िगर की गई है। मूल रूप से, 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
  • अज्ञात CA को अस्वीकार करना बंद करें: set NODE_TLS_REJECT_UNAUTHORIZED=0

जो समाधान अब मेरे लिए सबसे अच्छा काम कर रहा है, वह है NODE_EXTRA_CA_CERTS पर्यावरण चर का उपयोग करना जो मौजूदा CAs को आपकी .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/  

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं। कृपया सलाह दें कि प्रश्नों के उत्तर देने के तरीके के बारे में अधिक जानने के लिए कैसे पढ़ें
Artog

4

एक ही त्रुटि थी। ऐसा लगता है कि यह एसएसएल प्रमाणपत्र से संबंधित है। यदि आप सार्वजनिक पैकेज के लिए NPM का उपयोग कर रहे हैं (HTTPS की सुरक्षा की आवश्यकता नहीं है) तो आप निम्न आदेश के साथ सख्त SSL कुंजी सत्यापन को बंद कर सकते हैं।

यदि आप एक बार कुछ सार्वजनिक रूप से उपलब्ध पैकेजों को स्थापित करना चाहते हैं तो यह सबसे आसान समाधान हो सकता है।

npm config set strict-ssl=false

5
ऐसा करने का अंतर्निहित जोखिम है, अगर आप एक नापाक आदमी के बीच के हमले का शिकार हैं तो पैकेज को संशोधित किया जा सकता है जैसे ही आप इसे डाउनलोड करते हैं।
एलेक्स कीस्मिथ

@AlexKeySmith आप सही हैं। हालाँकि, अंतर बहुत कम हैं। यह कुछ के लिए एकमात्र विकल्प हो सकता है। कैविट एम्प्टर
जेसन गीगर

1

जब मैंने npm को अपडेट करने की कोशिश की थी, तब मुझे यह त्रुटि हुई थी, लेकिन AWS लिनक्स में yum से स्थापित एक बहुत पुराना संस्करण (1.3.6!) था। मैं मैन्युअल रूप से एक नया एनपीएम संस्करण स्थापित करने में सक्षम था और सबकुछ ठीक हो गया था।


0

नीचे दिए गए कोड ने मेरे लिए पूरी तरह से काम किया यहाँ http केवल बजाय 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

नीचे त्रुटि मिली

PS C: \ Users \ chpr \ Documents \ GitHub \ vue-nwjs-hours-tracking> npm install vue npm ERR! कोड UNABLE_TO_GET_ISSUER_CERT_LOCALLY npm ERR! गलत UNABLE_TO_GET_ISSUER_CERT_LOCALLY npm ERR! https://registry.npmjs.org/vue के लिए अनुरोध विफल, कारण: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ

npm ईआरआर! इस रन का पूरा लॉग इन पाया जा सकता है: npm ERR!
C: \ Users \ chpr \ AppData \ रोमिंग \ npm-cache_logs \ 2020-07-29T03_22_40_225Z-debug.log PS PS: \ Users \ chpr \ Documents \ GitHit-vue-nwjs-hours-ट्रैकिंग> PS C: \ Users \ Users chpr \ Documents \ GitHub \ vue-nwjs-hours-tracking> npm ERR!
C: \ Users \ chpr \ AppData \ रोमिंग \ NPM-cache_logs \ 2020-07-29T03_22_40_225Z-debug.log

नीचे दिए गए आदेश से समस्या हल हो गई:

npm config set strict-ssl false
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.