ข้อผิดพลาด SSL: CERT_UNTRUSTED ขณะใช้คำสั่ง npm


159

ฉันพยายามติดตั้ง express Framework โดยใช้คำสั่ง npm แต่รับข้อผิดพลาดต่อไปนี้

ข้อความแสดงข้อผิดพลาดคือ

E:\myFindings\nodejs_programs\node>npm install -g express
npm http GET https://registry.npmjs.org/express
npm ERR! Error: SSL Error: CERT_UNTRUSTED
npm ERR!     at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\main.js:409:26)
npm ERR!     at ClientRequest.g (events.js:185:14)
npm ERR!     at ClientRequest.EventEmitter.emit (events.js:88:17)
npm ERR!     at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1445:7)
npm ERR!     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
npm ERR!     at CleartextStream.socketOnData [as ondata] (http.js:1356:20)
npm ERR!     at CleartextStream.CryptoStream._push (tls.js:396:27)
npm ERR!     at SecurePair.cycle (tls.js:751:20)
npm ERR!     at EncryptedStream.CryptoStream.write (tls.js:131:13)
npm ERR!     at Socket.ondata (stream.js:38:26)
npm ERR!  [Error: SSL Error: CERT_UNTRUSTED]
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "express"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! message SSL Error: CERT_UNTRUSTED
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     E:\myFindings\nodejs_programs\node\npm-debug.log
npm ERR! not ok code 0

ช่วยฉันในการสังคายนา

คำตอบ:


316

คุณสามารถเลี่ยงผ่าน https โดยใช้คำสั่งด้านล่าง:

npm config set strict-ssl false

หรือตั้งค่ารีจิสตรี URL จาก https หรือ http เช่นด้านล่าง:

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

อย่างไรก็ตามโดยส่วนตัวแล้วฉันเชื่อว่าการเลี่ยงผ่าน https ไม่ใช่ทางออกที่แท้จริง แต่เราสามารถใช้เป็นวิธีแก้ปัญหาได้


13
ค่อนข้างจะไม่ปลอดภัย แต่เป็นทางออกที่ดีจริง ๆ
Bernard Saucier

1
เป็นไปได้ไหมที่จะลบตัวเลือกการเลี่ยงผ่านเมื่อเราใช้คำสั่งด้านบน ถ้าใช่เราจะลบตัวเลือกบายพาสได้อย่างไร
rash111

1
@ rash111 ฉันถือว่าการตั้งค่าเป็นจริงควรใช้งานได้:npm config set strict-ssl true
Gromer

10
"ทางออกที่ดีในโลกแห่งความจริง" ... นี่ไม่ดีเลยเว้นแต่คุณจะชอบถูกแฮ็ก
trusktr

ขอบคุณ! สิ่งนี้ยังจำเป็นเมื่อใช้ npm ใน VirtualBox VM ที่ใช้ Ubuntu 14.04 นี่เป็นวิธีเดียวที่จะแก้ไขข้อผิดพลาด CERT มันมาแม้ในขณะที่มีการกำหนดค่ารีจิสทรี"http://registry.npmjs.org/"ซึ่งเป็นค่าเริ่มต้น
Prahlad Yeri

53
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32

อัพเดตการติดตั้ง node.js ของคุณคำสั่งต่อไปนี้ควรทำ (จากที่นี่ ):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

แก้ไข: โอเคถ้าคุณจริงๆมีเหตุผลที่ดีในการทำงานรุ่นโบราณของซอฟต์แวร์ที่npm set ca nullจะแก้ไขปัญหา มันเกิดขึ้นเพราะใบรับรอง npm ในตัวหมดอายุในช่วงหลายปีที่ผ่านมา


3
ขณะนี้ฉันใช้สองเวอร์ชันเหนือกว่าคุณมีประเด็นอะไรฉันไม่เข้าใจ
Sudip7

1
ประเด็นของฉันคือ: เวอร์ชันเหล่านั้นเป็นรุ่นโบราณและใบรับรอง npm ในตัวในใบรับรองหมดอายุแล้ว หากคุณติดตั้งเวอร์ชันล่าสุดจะใช้งานได้
alex

1
ฉันพยายามติดตั้งเวอร์ชันล่าสุดและพบปัญหาระหว่างการติดตั้ง มีคนใน SO แนะนำให้ฉันติดตั้งเวอร์ชันด้านบนติดตั้งอย่างถูกต้อง แต่ตอนนี้ npm ไม่ทำงาน ฉันให้ลิงก์กับคำถามก่อนหน้านี้stackoverflow.com/questions/21850871/ …
Sudip7

24
ฉันพบว่าการทำงานsudo npm cache clean -fนั้นsudo npm install -g nให้ข้อผิดพลาด CERT_UNTRUSTED หลังจากคำสั่งที่สอง
fuzzi

2
อ้างอิงถึงลิงค์อ้างอิง: "วิธีการอัพเกรดโหนดตอนนี้ไม่เสถียรและไม่ควรใช้วิธีที่ดีที่สุดในการจัดการเวอร์ชั่น Node.js คือการใช้NVM: การจัดการเวอร์ชันโหนด "
chus

22

ฉันมีปัญหาเดียวกันและในที่สุดฉันก็เข้าใจว่ารุ่นโหนดของฉันเก่า ตัวอย่างเช่นคุณสามารถติดตั้งเวอร์ชันโหนด LTS ที่แอ็คทีฟปัจจุบันใน Ubuntu โดยขั้นตอนต่อไปนี้:

sudo apt-get update
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install nodejs -y

คำแนะนำในการติดตั้งสำหรับเวอร์ชั่นและระบบอื่น ๆ สามารถพบได้ในลิงค์ต่อไปนี้:

https://github.com/nodesource/distributions/blob/master/README.md


ทำงานบน Ubuntu 14.
Vignesh Chinnaiyan

9

ฉันคิดว่าฉันได้รับเหตุผลของข้อผิดพลาดข้างต้น เป็นพร็อกซีขององค์กร (เครือข่ายส่วนตัวเสมือน) ที่มีให้เพื่อทำงานในเครือข่ายลูกค้า หากไม่มีการเชื่อมต่อฉันมักประสบปัญหาเดียวกันไม่ว่าจะเป็น maven build หรือ npm install


5

หากคุณอยู่หลังพร็อกซีของ บริษัท ลองใช้การตั้งค่านี้เป็นเวลา 23.00 น. ด้วยพร็อกซีของ บริษัท ของคุณ:

npm --https-proxy=http://proxy.company.com install express -g

3
หากคุณทำงานในองค์กรขนาดใหญ่เป็นเรื่องปกติที่จะมีพร็อกซีเซิร์ฟเวอร์ระหว่างคุณกับอินเทอร์เน็ต บางครั้งก็ทำให้เกิดปัญหานี้ (สำหรับฉัน) การทดสอบที่เป็นไปได้สำหรับสิ่งนี้คือการเอาคอมพิวเตอร์ออกจากเครือข่ายและติดตั้ง npm ด่วนจากบ้าน
Michael Oakley

2

เนื่องจากฉันสะดุดกับโพสต์ผ่าน google:

ลองใช้มันจะมากไปกว่าnpm cinpm install

จากคู่มือ:

กล่าวโดยสรุปความแตกต่างหลักระหว่างการใช้การติดตั้ง npm และ npm ci คือ:

  • โปรเจ็กต์ต้องมี package-lock.json หรือ npm-shrinkwrap.json ที่มีอยู่
  • หากการอ้างอิงในการล็อกแพ็กเกจไม่ตรงกับที่อยู่ใน package.json, npm ci จะออกด้วยข้อผิดพลาดแทนที่จะอัพเดตการล็อกแพ็กเกจ
  • npm ci สามารถติดตั้งทั้งโครงการได้พร้อมกัน: ไม่สามารถเพิ่มการพึ่งพาแต่ละรายการได้ด้วยคำสั่งนี้
  • หาก node_modules มีอยู่แล้วจะถูกลบโดยอัตโนมัติก่อนที่จะเริ่มต้นการติดตั้ง npm ci
  • มันจะไม่เขียนถึง package.json หรือใด ๆ ของแพ็คเกจล็อค: การติดตั้งจะถูกตรึงเป็นหลัก

1

ติดตั้งโหนดอีกครั้งจากนั้นอัปเดต npm

ก่อนอื่นฉันลบโหนด

apt-get purge node

จากนั้นติดตั้งโหนดตามการกระจาย เอกสารที่นี่

แล้วก็

npm install npm@latest -g
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.