SSL Hatası: npm komutu kullanılırken CERT_UNTRUSTED


159

Npm komutunu kullanarak ancak aşağıdaki hatayı alıyorum ekspres çerçeve yüklemeye çalışıyorum.

hata mesajı

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

sıralamama yardım et

Yanıtlar:


316

Aşağıdaki komutları kullanarak https'yi atlayabilirsiniz:

npm config set strict-ssl false

veya aşağıdaki gibi https veya http'den kayıt defteri URL'sini ayarlayın:

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

Ancak Şahsen, https'yi atlamanın gerçek bir çözüm olmadığına inanıyorum, ancak bunu bir çözüm olarak kullanabiliriz.


13
Biraz güvensiz, ama güzel bir gerçek dünya çözümü.
Bernard Saucier

1
Yukarıdaki komutu kullandığımızda baypas seçeneğini kaldırmak mümkün mü? Evet ise, bypass seçeneğini nasıl kaldırabiliriz?
rash111

1
@ rash111 Doğru olarak ayarlamayı varsayıyorum:npm config set strict-ssl true
Gromer

10
"güzel gerçek dünya çözümü" ... Saldırıya uğramak istemediğiniz sürece bu hiç hoş değil.
trusktr

Teşekkürler! Bu, Ubuntu 14.04 çalıştıran bir VirtualBox VM'de npm kullanırken de gereklidir. Bu, CERT hatasını düzeltmenin tek yoludur, kayıt defteri "http://registry.npmjs.org/"varsayılan olarak yapılandırıldığında bile gelir .
Prahlad Yeri

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

Node.js kurulumunuzu güncelleyin.Aşağıdaki komutlar bunu yapmalıdır ( buradan ):

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

Düzenleme: Tamam, gerçekten yazılımın eski bir sürümünü çalıştırmak için iyi bir nedeniniz varsa npm set ca null, sorunu çözecektir. Bu gerçekleşti, çünkü yerleşik npm sertifikasının yıllar içinde süresi doldu.


3
Şu anda yukarıdaki iki sürümü kullanıyorum, ne demek istiyorsun, anlayamadım
Sudip7

1
Demek istediğim şu: bu sürümler eski ve bu sürümlerdeki yerleşik npm sertifikalarının süresi zaten dolmuş. Son sürümleri yüklerseniz çalışırlar.
alex

1
En son sürümü yüklemeye çalıştım ve yükleme sırasında bir sorunla karşılaştım. SO'daki biri yukarıdaki sürümü yüklememi önerdi, düzgün kuruldu, ancak şimdi npm çalışmıyor. Sana önceki soruma link veriyorum stackoverflow.com/questions/21850871/…
Sudip7

24
Ben yayınlanmadığını gördük sudo npm cache clean -fsonra sudo npm install -g nikinci komutun ardından CERT_UNTRUSTED hata veriyor.
fuzzi

2
Başvurulan bağlantıya göre: "Düğümü yükseltmenin bu yöntemi artık kararsız ve kullanılmamalıdır. Node.js sürümlerini yönetmenin en iyi yolu NVM: Düğüm Sürümü Yönetimi kullanmaktır. !"
chus

22

Aynı problemim vardı ve sonunda düğüm sürümümün eski olduğunu anladım. Örneğin, şu andaki etkin LTS düğümü sürümünü Ubuntu'ya aşağıdaki adımlarla yükleyebilirsiniz:

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

Daha fazla sürüm ve sistem için kurulum talimatları aşağıdaki bağlantıda bulunabilir:

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


Ubuntu 14 üzerinde çalıştı.
Vignesh Chinnaiyan

9

Yukarıdaki hatanın nedenini düşünüyorum. İstemci ağında çalışmak için sağlanan kurumsal proxy'dir (sanal özel ağ). Bu bağlantı olmadan sık sık aynı sorun ile karşı karşıya maven kurmak veya npm yükleyin.


5

Kurumsal bir proxy'nin arkasındaysanız şirketinizin proxy'siyle npm için bu ayarı deneyin:

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

3
Büyük bir kuruluşta çalışıyorsanız, sizinle internet arasında bir proxy sunucusu olması yaygındır. Bazen bu soruna neden olur. (Benim için yaptı) Bunun olası bir testi, bilgisayarı ağdan çıkarmak ve evden npm install express.
Michael Oakley

2

Ben google üzerinden yazı tökezledi beri:

Kullanmayı deneyin bir npm cidaha olacak npm install.

Kılavuzdan:

Kısacası, npm install ve npm ci kullanımı arasındaki temel farklar şunlardır:

  • Projenin mevcut bir package-lock.json veya npm-shrinkwrap.json dosyası olmalıdır.
  • Paket kilidindeki bağımlılıklar package.json ile aynı değilse, npm ci paket kilidini güncellemek yerine bir hata ile çıkar.
  • npm ci aynı anda yalnızca tüm projeleri yükleyebilir: bu komutla bağımsız bağımlılıklar eklenemez.
  • Bir node_modules zaten mevcutsa, npm ci kurulumuna başlamadan önce otomatik olarak kaldırılacaktır.
  • Asla package.json veya paket kilitlerinden birine yazmaz: yüklemeler esasen dondurulur.

1

Düğümü yeniden yükleyin, ardından npm'yi güncelleyin.

Önce düğümü kaldırdım

apt-get purge node

Ardından düğümü dağıtıma göre kurun. Dokümanlar burada .

Sonra

npm install npm@latest -g
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.