NPM 没有安装包。主机名/IP 地址与证书的替代名称不匹配:
Posted
技术标签:
【中文标题】NPM 没有安装包。主机名/IP 地址与证书的替代名称不匹配:【英文标题】:NPM not installing package. Hostname/IP address doesn't match certificate's altnames: 【发布时间】:2019-02-07 05:44:49 【问题描述】:有关解决方案,请参见下文
昨天还在工作,但我不知道发生了什么。
主机:registry.npmjs.org。不在证书的替代名称中:DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net
这就是我想要做的:
>> ROOT: npm install
up to date in 1.797s
>> ROOT: npm install express-messages
npm ERR! request to https://registry.npmjs.org/express-messages failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/prashant/.npm/_logs/2018-09-01T11_54_09_205Z-debug.log
>> ROOT:
我已经阅读了我能找到的所有文章/问题,并且还重新安装了 Node.js 和 npm,但之后我也遇到了同样的问题。
操作系统:macOS v10.12 (Sierra) (16A323)
日志
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli 'install',
1 verbose cli 'express-messages' ]
2 info using npm@5.6.0
3 info using node@v8.11.4
4 verbose npm-session 54f0308df52fc8a7
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData error for express-messages@latest request to https://registry.npmjs.org/express-messages failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
8 verbose type system
9 verbose stack FetchError: request to https://registry.npmjs.org/express-messages failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
9 verbose stack at ClientRequest.req.on.err (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js:68:14)
9 verbose stack at emitOne (events.js:116:13)
9 verbose stack at ClientRequest.emit (events.js:211:7)
9 verbose stack at TLSSocket.socketErrorListener (_http_client.js:387:9)
9 verbose stack at emitOne (events.js:116:13)
9 verbose stack at TLSSocket.emit (events.js:211:7)
9 verbose stack at emitErrorNT (internal/streams/destroy.js:64:8)
9 verbose stack at _combinedTickCallback (internal/process/next_tick.js:138:11)
9 verbose stack at process._tickCallback (internal/process/next_tick.js:180:9)
10 verbose cwd /Users/prashant/Desktop/NodeJs-login-registration
11 verbose Darwin 16.0.0
12 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "express-messages"
13 verbose node v8.11.4
14 verbose npm v5.6.0
15 error request to https://registry.npmjs.org/express-messages failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
16 verbose exit [ 1, true ]
浏览器图片链接: https://imgur.com/a/pBANqtQ
但我已经尝试将 SSL 设置 npm config ls -l
更改为 npm set strict-ssl false
。
卡在这个图片链接上:https://imgur.com/9LasDKT
然后然后这个错误:https://imgur.com/ARXj9v3
更新
我的应用程序运行良好。只是我无法安装软件包https://imgur.com/mvKOZeq
当我尝试停止服务器时,出现了一种新的错误 (注意:我已经更改了上面提到的 SSL 设置,如果与此有关)https://imgur.com/yPKq0n5
>> ROOT: npm start
> nodejs-login-registration@1.0.0 start /Users/prashant/Desktop/NodeJs-login-registration
> nodemon app.js
[nodemon] 1.18.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
Remember : start mongoDB demon --> mongod && mongo
-- Server live : 3000 --
Connected to DB : SUCCESS
^Cnpm ERR! code ELIFECYCLE
npm ERR! errno 130
npm ERR! nodejs-login-registration@1.0.0 start: `nodemon app.js`
npm ERR! Exit status 130
npm ERR!
npm ERR! Failed at the nodejs-login-registration@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/prashant/.npm/_logs/2018-09-01T13_10_55_028Z-debug.log
>> ROOT:
日志:当我停止服务器时
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ]
2 info using npm@5.6.0
3 info using node@v8.11.4
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle nodejs-login-registration@1.0.0~prestart: nodejs-login-registration@1.0.0
6 info lifecycle nodejs-login-registration@1.0.0~start: nodejs-login-registration@1.0.0
7 verbose lifecycle nodejs-login-registration@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle nodejs-login-registration@1.0.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/prashant/Desktop/NodeJs-login-registration/node_modules/.bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Python.framework/Versions/3.6/bin
9 verbose lifecycle nodejs-login-registration@1.0.0~start: CWD: /Users/prashant/Desktop/NodeJs-login-registration
10 silly lifecycle nodejs-login-registration@1.0.0~start: Args: [ '-c', 'nodemon app.js' ]
11 silly lifecycle nodejs-login-registration@1.0.0~start: Returned: code: 130 signal: null
12 info lifecycle nodejs-login-registration@1.0.0~start: Failed to exec start script
13 verbose stack Error: nodejs-login-registration@1.0.0 start: `nodemon app.js`
13 verbose stack Exit status 130
13 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:285:16)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at EventEmitter.emit (events.js:214:7)
13 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at ChildProcess.emit (events.js:214:7)
13 verbose stack at maybeClose (internal/child_process.js:925:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid nodejs-login-registration@1.0.0
15 verbose cwd /Users/prashant/Desktop/NodeJs-login-registration
16 verbose Darwin 16.0.0
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
18 verbose node v8.11.4
19 verbose npm v5.6.0
20 error code ELIFECYCLE
21 error errno 130
22 error nodejs-login-registration@1.0.0 start: `nodemon app.js`
22 error Exit status 130
23 error Failed at the nodejs-login-registration@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 130, true ]
.
.
.
我找到了适合我的解决方案
dig www.npmjs.com @1.1.1.1
将 IP 地址添加到您的 /etc/hosts
文件中。
转到此目录并执行sudo nano hosts
。
并将其添加到主机文件中:1.1.1.1 a.sni.fastly.net.
【问题讨论】:
Node.js Hostname/IP doesn't match certificate's altnames的可能重复 I am facing error while trying to install npm packages on windows, I am using node v10.9.0的可能重复 @HardikShah 在 mac 上如何工作? 我也有同样的问题,但是我只是通过 yarn 安装了 crypto 并通过 brew 安装了 openssl 这是一个全球性问题。 DNS 问题。这对我“暂时”有用:https://status.npmjs.org/incidents/v22ffls5cd6h 【参考方案1】:将以下行添加到/etc/hosts
文件中:
104.16.16.35 registry.npmjs.org
【讨论】:
我做了一些事情,它有效,请参阅上面的帖子,我已经更新了解决方案,请查看 我需要这个答案。 1.1.1.1 现在为我返回损坏的 a.sni.fastly.net ip,而不是实际的注册表 IP。 我可以确认这是可行的。在我的开发机器上添加以下行 /etc/hosts 解决了这个问题。 104.16.16.35 registry.npmjs.org 好奇..你是怎么得到这个IP地址的?它对我不起作用,我使用的是 Windows 10 @burnt1ce 这很可能是用户从他们的地理区域挖掘到 npmjs.org 时获得的 IP 地址。我在美国东南部,当我挖掘 npmjs.org 时,我看到我解析的 IP 是104.16.109.30
我多年来没有在 Windows 上执行任何网络工作,但我想你有一个 dig
,或者挖掘- 类似命令行实用程序,可帮助确定您应该使用的 IP 地址(直到周末结束 ^^ 参见上一条评论)【参考方案2】:
根据其事件报告,npmjs 存在 DNS 问题:DNS misconfiguration cached in ISP DNS caches。
要解决您的问题,请执行以下操作:
dig www.npmjs.com @1.1.1.1
Linux 上的示例输出
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.npmjs.com @1.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50308
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
;; QUESTION SECTION:
;www.npmjs.com. IN A
;; ANSWER SECTION:
www.npmjs.com. 128 IN CNAME www.npmjs.com.cdn.cloudflare.net.
www.npmjs.com.cdn.cloudflare.net. 151 IN A 104.16.109.30
www.npmjs.com.cdn.cloudflare.net. 151 IN A 104.16.110.30
;; Query time: 2 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Sat Sep 01 14:05:56 UTC 2018
;; MSG SIZE rcvd: 120
获取解析的 IP 地址:在我的情况下为 104.16.109.30
在您的 /etc/hosts
文件中添加新条目
echo "104.16.110.30 www.npmjs.com registry.npmjs.org" >> /etc/hosts
不要忘记在周末结束时删除此行。
【讨论】:
为我工作,不得不使用nano打开/etc/hosts
,echo
给了我permission denied
,因为我是业余爱好者
;; connection timed out; no servers could be reached
...【参考方案3】:
尝试更改默认注册表:
npm config set registry http://registry.npmjs.org
对于所有被 mup deploy 困扰的人:
docker:
// change to 'abernix/meteord:base' if your app is using Meteor 1.4 - 1.5
image: 'abernix/meteord:node-8.4.0-base',
buildInstructions: [
'RUN npm config set strict-ssl false'
]
,
【讨论】:
你的意思是把https改成http以上是关于NPM 没有安装包。主机名/IP 地址与证书的替代名称不匹配:的主要内容,如果未能解决你的问题,请参考以下文章
API 网关 - ALB:主机名/IP 与证书的替代名称不匹配
【Vmware】新建虚拟机没有IP和主机名bogon的解决办法