NodeJS 设置Azure Artifacts Feed后npm publish出现问题

u5rb5r59  于 9个月前  发布在  Node.js
关注(0)|答案(1)|浏览(116)

在使用Azure Artifacts提要配置身份验证后,我在Node.js项目中遇到了npm install和npm publish问题。我已按照文档操作,并将必要的条目添加到我的用户和项目级别.npmrc文件中
x1c 0d1x的数据
但是,当尝试运行npm install或npm publish时,我收到以下错误:

44 verbose type system
45 verbose stack FetchError: request to https://devops.XXXXXX.com/XXXXXXXXX/_packaging/logger/npm/registry/http-utility failed, reason: 8085940301000000:error:0A000152:SSL routines:final_renegotiate:unsafe legacy renegotiation disabled:ssl/statem/extensions.c:893:
45 verbose stack
45 verbose stack     at ClientRequest.<anonymous> (/opt/homebrew/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
45 verbose stack     at ClientRequest.emit (node:events:514:28)
45 verbose stack     at _destroy (node:_http_client:875:13)
45 verbose stack     at onSocketNT (node:_http_client:895:5)
45 verbose stack     at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
46 verbose cwd /Users/bhavesh1.gupta/Desktop/untitled folder/http-utility
47 verbose Darwin 21.6.0
48 verbose node v20.8.0
49 verbose npm  v10.2.5
50 error code ERR_SSL_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
51 error errno ERR_SSL_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
52 error request to https://devops.XXXXXXX.com/XXXXXXXX/_packaging/logger/npm/registry/http-utility failed, reason: 8085940301000000:error:0A000152:SSL routines:final_renegotiate:unsafe legacy renegotiation disabled:ssl/statem/extensions.c:893:
52 error
53 verbose exit 1
54 timing config:load:flatten Completed in 4ms
55 timing npm Completed in 70505ms
56 verbose code 1

字符串
我的设置包括Node.js v20.8.0和npm v10.2.5。我在macOS上开发
我尝试了npm config set strict-ssl false。但它不工作,我已经在网上搜索,但没有找到解决这个特定错误的方法。任何关于解决这个问题的见解或指导将不胜感激。
在此先谢谢您!

yr9zkbsy

yr9zkbsy1#

原因:8085940301000000:错误:0A 000152:SSL例程:final_renegotiate:不安全的旧版重新协商已禁用:ssl/statem/extensions.c:893:
根据错误消息,问题可能与使用高于节点17的节点版本时的更改有关。
在Node v17及更高版本中,OpenSSL已更新到v3.0.7。SSL_OP_LEGACY_SERVER_SENECT是从OpenSSL 1.1.1中默认启用到OpenSSL 3.0中默认禁用的选项。
请参考以下方法,并检查其是否有效:
方法1:创建openssl.cnf并添加Options = UnsafeLegacyRenegotiation
步骤如下:
步骤1:在任意目录下创建一个自定义的openssl.cnf文件,包含以下内容:

openssl_conf = openssl_init

[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
Options = UnsafeLegacyRenegotiation

字符串
步骤2:在运行npm命令之前运行命令:OPENSSL_CONF=/path/to/custom/openssl.cnf
举例来说:

export OPENSSL_CONF=/path/to/custom/openssl.cnf

npn install/npm publish


方法2:您可以尝试将节点版本从v20.8.0降级到v16.x,并检查它是否可以工作。

相关问题