unable to verify the first certificate 原因及解決方法

配圖源自 Freepik

背景

此前私植,在項(xiàng)目中安裝依賴時(shí)鼻吮,遇到了如下報(bào)錯(cuò):

yarn install v1.22.19
[1/4] ??  Resolving packages...
[2/4] ??  Fetching packages...
error An unexpected error occurred: "https://r2.cnpmjs.org/form-data/-/form-data-3.0.1.tgz: unable to verify the first certificate".
info If you think this is a bug, please open a bug report with the information provided in "/Users/frankie/Web/ifanr/yuegonghui/activity-collection/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

yarn-error.log 如下

Arguments: 
  /Users/frankie/Library/Application Support/fnm/node-versions/v16.15.0/installation/bin/node /usr/local/bin/yarn

PATH: 
  /Users/frankie/Library/Caches/fnm_multishells/57063_1669556334889/bin:/Users/frankie/.yarn/bin:/usr/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/frankie/Library/Caches/fnm_multishells/57063_1669556334889/bin:/Users/frankie/.yarn/bin:/usr/local/sbin:/opt/homebrew/bin:/opt/homebrew/bin

Yarn version: 
  1.22.19

Node version: 
  16.15.0

Platform: 
  darwin arm64

Trace: 
  Error: unable to verify the first certificate
      at TLSSocket.onConnectSecure (node:_tls_wrap:1532:34)
      at TLSSocket.emit (node:events:527:28)
      at TLSSocket._finishInit (node:_tls_wrap:946:8)
      at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:727:12)

npm manifest:
  ...

yarn manifest: 
  No manifest

Lockfile:
  ...

報(bào)錯(cuò)信息為:unable to verify the first certificate垂攘,與證書有關(guān)揭保。由于 yarn installnpm install 走的是 HTTPS 協(xié)議谆棺,它的安全通過數(shù)字證書來保障疚沐。數(shù)字證書由專門機(jī)構(gòu)頒發(fā)暂氯,通常是付費(fèi)的。自簽證書亮蛔,就是自己扮演數(shù)字證書機(jī)構(gòu)給自己頒發(fā)的證書痴施。

由于自 2014 年 2 月 27 日起,npm 不再支持「自簽證書 Self-Signed Certificate」。?? npm Blog

加上辣吃,也就是 https://r2.cnpmjs.org/form-data/-/form-data-3.0.1.tgz 所在域名的證書是不被信任的动遭。這點(diǎn)通過 Firefox 瀏覽器就能發(fā)現(xiàn):

其中 npm 與證書相關(guān)的配置有兩項(xiàng)

  • ca - 用于指定信任的證書頒發(fā)機(jī)構(gòu)(Certificate Authority)。默認(rèn)為 null神得,表示僅允許「已知且可信的」證書頒發(fā)機(jī)構(gòu)所頒發(fā)的證書厘惦。
  • strict-ssl - 通過 https 向注冊表發(fā)出請(qǐng)求時(shí)是否進(jìn)行 SSL 密鑰驗(yàn)證,若校驗(yàn)失敗循头,npm 將無法連接到服務(wù)器并報(bào)錯(cuò)绵估。默認(rèn)為 true

解決方法

方法一

在確定「安全」的情況下卡骂,可以臨時(shí)關(guān)閉 strict-ssl 選項(xiàng):

$ yarn config set strict-ssl false
$ npm config set strict-ssl false

當(dāng) strict-ssl 設(shè)置為 false 時(shí)国裳,npm 將不會(huì)對(duì)服務(wù)器的 SSL 證書進(jìn)行校驗(yàn),并且即使證書是由不可信的認(rèn)證機(jī)構(gòu)頒發(fā)的也不會(huì)報(bào)錯(cuò)全跨。這可能會(huì)導(dǎo)致安全風(fēng)險(xiǎn)缝左,因?yàn)槟愕木W(wǎng)絡(luò)流量可能被劫持或篡改,而你并不會(huì)意識(shí)到這一點(diǎn)浓若。因此渺杉,應(yīng)該盡量避免使用 strict-ssl 設(shè)置為 false

如果你確實(shí)需要使用 strict-ssl 設(shè)置為 false挪钓,例如你所連接的服務(wù)器使用的是自簽名的 SSL 證書是越,應(yīng)該只在短時(shí)間內(nèi)使用,并在操作完成后盡快將 strict-ssl 設(shè)置回 true碌上。

方法二(推薦)

找出所有相關(guān)的 npm 包倚评,并選擇可信的鏡像源后重裝。

如果你處于具有攔截 HTTPS 代理的環(huán)境中馏予,它可能會(huì)破壞 npm天梧,與運(yùn)維人員聯(lián)系解決。

The end.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霞丧,一起剝皮案震驚了整個(gè)濱河市呢岗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛹尝,老刑警劉巖后豫,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異突那,居然都是意外死亡硬贯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門陨收,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事务漩≈羲ィ” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵饵骨,是天一觀的道長翘悉。 經(jīng)常有香客問我,道長居触,這世上最難降的妖魔是什么妖混? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮轮洋,結(jié)果婚禮上制市,老公的妹妹穿的比我還像新娘。我一直安慰自己弊予,他們只是感情好祥楣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著汉柒,像睡著了一般误褪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碾褂,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天兽间,我揣著相機(jī)與錄音,去河邊找鬼正塌。 笑死嘀略,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的传货。 我是一名探鬼主播屎鳍,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼问裕!你這毒婦竟也來了逮壁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤粮宛,失蹤者是張志新(化名)和其女友劉穎窥淆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巍杈,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忧饭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筷畦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片词裤。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刺洒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吼砂,到底是詐尸還是另有隱情逆航,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布渔肩,位于F島的核電站因俐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏周偎。R本人自食惡果不足惜抹剩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蓉坎。 院中可真熱鬧澳眷,春花似錦、人聲如沸袍嬉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伺通。三九已至箍土,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間罐监,已是汗流浹背吴藻。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弓柱,地道東北人沟堡。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像矢空,于是被迫代替她去往敵國和親航罗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容