μλ νμΈμ
_κΈ°λ₯_μ μμ²νμκ² μ΅λκΉ? μλλ©΄ _λ²κ·Έ_λ₯Ό λ³΄κ³ νμκ² μ΅λκΉ?
Bug
νμ¬ λμμ΄ λ²κ·ΈμΈ κ²½μ° μ¬ν λ¨κ³λ₯Ό μ 곡νμμμ€.
Ξ» yarn config set strict-ssl false
yarn config v0.15.1
success Set "strict-ssl" to "false".
Done in 0.06s.
yarn install
error unable to get local issuer certificate
at Error (native)
at TLSSocket.<anonymous> (_tls_wrap.js:1060:38)
at emitNone (events.js:86:13)
at TLSSocket.emit (events.js:185:7)
at TLSSocket._finishInit (_tls_wrap.js:584:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:416:38)
info Visit http://yarnpkg.com/en/docs/cli/install for documentation about this command.
μμλλ λμμ 무μμ
λκΉ?
μ’
μμ±μ μ€μΉνκ³ μΆμ΅λλ€.
λ΄κ° λκ°λ₯Ό λμΉκ³ μμ΅λκΉ (μλ§λ)?
κ°μ¬ ν΄μ
node.js, μμ¬ λ° μ΄μ 체μ λ²μ μ μΈκΈνμμμ€.
λ
ΈλJS: V6.7
μμ¬: v0.15.1
μ΄μ 체μ : μλμ° 7
μ체 μλͺ SSLμ μΆκ°νλ νλ‘μ λ€μ μκΈ° λλ¬Έμ λμΌν λ¬Έμ κ° μμ΅λλ€.
strict-ssl
κ° νμ±νλμμ§λ§ CAκ° .npmrc
μλμΌλ‘ μ§μ λ κ²½μ°μλ λμΌν λ¬Έμ κ° λ°μν©λλ€. Yarnμ λͺ¨λ SSL ꡬμ±μ 무μνλ κ² κ°μ΅λλ€(λλ λ€λ₯Έ ꡬμ±μ΄ νμνμ§λ§ ꡬμ±μμ μ°Ύμ μ μμ).
ca[]="-----BEGIN CERTIFICATE-----\n..."
μ§μ₯μμ κ°μ λ¬Έμ κ° λ°μνμ΅λλ€!
κ°μ λ¬Έμ κ° μμ΅λλ€. (μ λ μ체 μΈμ¦μλ₯Ό μ¬μ©νκ³ μμ΅λλ€.)
λμΌν λ¬Έμ λ‘, λ μ§μ€νΈλ¦¬λ₯Ό λΉ SSL λ³ν λλ μλ λΉ SSL Registry.npmjs.orgλ‘ μ€μ ν΄λ λμμ΄ λμ§ μμ΅λλ€.
κΈ°μ νλ‘μ λ€μ μμΌλ―λ‘ μ΄ λ¬Έμ λ λ°μν©λλ€.
νμ¬ νλ‘μ λ€μ λμΌν μ νν μ€λ₯κ° μμ΅λλ€. :) . μμ μ κΈ°λ€λ¦΄ μ μμ΅λλ€ :)
λμΌν λ¬Έμ κ° μμ΅λλ€. λ€νΈμν¬κ° νλ‘μ λ€μ μκ³ strict-sslμ falseλ‘ μ€μ νκ³ λ μ§μ€νΈλ¦¬λ₯Ό λΉ SSLλ‘ κ΅¬μ±ν΄λ μ¬μ ν μλνμ§ μμ΅λλ€. κ°λ₯ν 빨리 μμ νλ κ²μ΄ μ’μ΅λλ€. κΈ°λ€λ¦΄ μ μμ΄.
@TAGraves κ° #1025μμ μ΄ μμ μ νκ³ μλ€κ³ μκ°ν©λλ€. μ λ§ λ μλ³΄κ³ μΆμ΄μ! π
PR #736μ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ λ€λ₯Έ λ°©λ²μΈ cafileμ λν μ§μμ μΆκ°ν μμ μ΄λ©°, strict-sslμ λΉνμ±ννλ κ²κ³Ό λ¬λ¦¬ MITM 곡격μ μ·¨μ½νμ§ μμ΅λλ€.
cafile
λ° strict-ssl
λν μ§μμ λ³ν©νμΌλ―λ‘ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν΄μΌ ν©λλ€.
μμ¬ v0.21.3μμ μ¬μ ν μ΄ λ¬Έμ κ° λ°μν©λλ€.
μ λ°μ΄νΈ: μΌκ° λΉλ 0.22.0-20170303.1013μμλ
strict-ssl λ° κΈ°ν ꡬμ±μ .npmrcμμ .yarnrcλ‘ λ³΅μ νλ©΄ μμ
μ΄ μμλ©λλ€(λλ yarn config set
λ₯Ό μ¬μ©νμ¬ κ° λΆλΆμ μΆκ°). μ .npmrcμμ μ ννμ§ μμλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€.
λμΌν μν©μμ λμΌν λ¬Έμ κ° μμμ§λ§ μ΄ λͺ
λ Ήμ yarn config set strict-ssl false
μ€ννλλ° μλνμ΅λλ€.
λ€, μ μκ²λ ν¨κ³Όκ° μμμ΅λλ€.
@syvesteraswin λ λκ°μ΄ νκ³ ν¨κ³Όκ° μμμ΅λλ€. thx π
λͺ¨λ 0.23.1μμ κΉ¨μ Έ λ μ§μ€νΈλ¦¬λ₯Ό httpλ‘ μ€μ νκ³ strict-sslμ falseλ‘ μ€μ νλ©΄ μλνμ§λ§ μ§κΈμ μλνμ§ μμ΅λλ€. μΈμ¦μλ₯Ό κ°λ‘μ±λ λ°μλ λ¬Έμ κ° μμΌλ©° μ΄κ²μ΄ httpκ° νμν μ΄μ μ λλ€.
yarn config set strict-ssl false
μλνμ§λ§ μ΄μ "404 Not Found"κ° νμλ©λλ€. λ§₯ μμλΌ, λ
Έλ 8.1.2, μ 0.27.5.
@JesterXL κ·Έκ²μ λλ₯Ό μν΄ μΌνμ΅λλ€. λμΌν λ²μ v0.27.5 μ¬μ©
yarn config set strict-ssl false
μ΄ λλ₯Ό μν΄ μΌνμ΅λλ€!
npm κ΅¬μ± μΈνΈ strict-ssl
λλ₯Ό μν΄ μΌνλ€
μ¬λλ€μ΄ μ¬κΈ°μ λΆμ¬λ£κΈ° μ½λλ₯Ό λ§Ήλͺ©μ μΌλ‘ 볡μ¬νμ§ μλλ‘ νμμμ€. μ격ν SSL κ²μ¬λ₯Ό λΉνμ±ννμ§ λ§μμμ€.
μ, μ΄μ λ΄κ° μ£Όμλ₯Ό κΈ°μΈμ΄κ³ μμ΅λλ€. μ νν 무μμ νκ³ μκ³ μ΄λ€ μνμ κ°μνλμ§ _μλ€λ©΄_ μ μ μμ΅λλ€. κ·Έλ μ§ μμΌλ©΄ κ·Έλ₯νμ§ λ§μμμ€.
HTTP μ¬μ©μ μνμ μμ μ λ ΈμΆμν€μ§ μλ μ루μ μ΄ μμ΅λκΉ? μ격ν SSLμ λΉνμ±ννμ§ μκ³ λ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μκΈ°λ₯Ό λ°λλλ€.
STRICT SSLμ μ¬μ©νλ©΄ μ’κ² μ§λ§ λ¬Έμ λ μΈμ¦μλ₯Ό κ΅ννλ νμ¬μ λλ€. μ€μ λ‘ httpλ₯Ό μ¬μ©νμ§ μλ κ²μ μ΄λ ΅κ² λ§λ€κ³ μμ΄ μ°λ¦¬κ° λμ μΌμ νκ³ μμ§ μμμ§ νμΈνκΈ° μν΄ νΈλν½μ κ°μν μ μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ κ·Έλ€μ μ§μλ³΄λ€ μΌλ° λμ€μ λ μ λ’°ν©λλ€. κ·Έλ¬λ λμμ΄ μμ΅λλ€. νμ¬μμ κ΅ννλ μΈμ¦μμ μ¬λ³Έμ κ°μ Έμμ cafileμ μΈμ¦μμ κ²½λ‘λ‘ μ€μ ν΄μΌ ν©λλ€. μ΄κ²μ νμν λ§νΌ κ°λ¨ν κ³Όμ μ μλμ§λ§ μλνκ³ μμ ν©λλ€. μλνμ§ μμΌλ©΄ μμ¬ λ²μ μ μ κ·Έλ μ΄λν΄μΌ ν©λλ€...
@damiandennis μ ν¬ νμ¬μμ λ°©κΈ μ μΈμ¦μλ₯Ό ꡬνν΄μ μ»΄ν¨ν°μ λ±λ‘
@snood1205 κ°μ μν©μ
λλ€. yarn
λ° pip
μ μΈνκ³ λ€λ₯Έ λͺ¨λ κ²μ μ μλν©λλ€.
λλ μ΄κ²μ΄ μ°λ¦¬κ° μμ‘΄νλ request
λΌμ΄λΈλ¬λ¦¬κ° μ΄λ»κ² ꡬμ±λμ΄ μκΈ° λλ¬Έμ΄λΌκ³ μκ°ν©λλ€.
strictSSL - trueμΈ κ²½μ° SSL μΈμ¦μκ° μ ν¨ν΄μΌ ν©λλ€. μ°Έκ³ : μ체 μΈμ¦ κΈ°κ΄μ μ¬μ©νλ €λ©΄ ν΄λΉ CAλ₯Ό μ¬μ©νμ¬ μμ±λ μμ΄μ νΈλ₯Ό μ΅μ μΌλ‘ μ§μ ν΄μΌ ν©λλ€.
λ°λΌμ .yarnrc
μμ λ€μ κ΅¬μ± κ°μ μ€μ νμ¬ νμ¬ μΈμ¦μλ₯Ό λͺ
μμ μΌλ‘ νμ΄νΈλ¦¬μ€νΈμ μΆκ°ν μ μμ΄μΌ ν©λλ€.
@BYK μ΄κ²μ κ°λ¨ν μ§λ¬Έμ λλ€. μ€λ‘ν©λλ€.
μ΄ κ°μ μ€μ νλ νμμ 무μμ
λκΉ? ca=~/Code/certs/mycert.crt
?
λν .yarnrc
μλ¨μ μμ νμ§ λ§λΌλ ν° λ©΄μ±
μ‘°νμ΄ μμ΅λλ€. μ΄μ¨λ λ³κ²½ν κΆνμ΄ μμ΅λκΉ? π
@ao λΉκ²°μ μ λ€μ΄λ‘λλ₯Ό μ¦κΈ°μμμ€!
yarn config set strict-ssl false
λλ₯Ό μν΄ μΌνμ΅λλ€. @syvesteraswin κ°μ¬
λ€μ λͺ
λ Ήμ΄ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
μμ¬ κ΅¬μ±μ strict-sslμ falseλ‘ μ€μ ν©λλ€.
@vrajpoot λ©μ§λ€μ ! κ·Έλ¬λ λ€λ₯Έ λΆμ£Όμν μ¬λλ€μ΄ κΈ°λ³Έ 보μμ λκ³ μ μ¬μ μΌλ‘ μ»΄ν¨ν°μ 맬μ¨μ΄λ₯Ό λ€μ΄λ‘λνλλ‘ μμΌ μ μμΌλ―λ‘ μ¬κΈ°μ κ²μνμ§ λ§μμμ€.
맬μ¨μ΄λ₯Ό μ’μνκ³ μλμ μΌλ‘ μ»΄ν¨ν°λ₯Ό κ°μΌμν€λ κ²μ μ ν λ¬Έμ κ° λμ§ μμ΅λλ€. νμ§λ§ μ΄κ²μ μ°κ΅¬ μ£Όμ λ μ·¨λ―Έλ‘ λ¨μ μμ΄μΌ νλ©° μ€μ μμ μμ€ν μμ νλ μΌμ΄ μλλλ€.
@brandonsturgeon μ ν΄κ²°ν΄μΌ ν λ§€μ° μ ν¨ν μ μ μ μνμΌλ©° μμ¬ κ΄λ¦¬μκ° μλ΅ν΄μΌ ν©λλ€. κΆκΈν μ¬λμ κ·ΈλΏλ§μ΄ μλλλ€.
ν₯λ―Έλ‘κ²λ "strict-sslμ λΉνμ±ννμ§ λ§μμμ€"λΌκ³ λ§νλ λͺ¨λ μ¬λ.
κ·Έλ¬λ μ무λ μ±κ³΅νμ§ λͺ»ν©λλ€.
yarn config set strict-ssl falseκ° μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€. κ°μ¬ ν΄μ
jquery ν¨ν€μ§λ₯Ό μ€μΉνλ €κ³ ν λ μ΄ μ€λ₯κ° λ°μνμ΅λλ€. μλ§μ μ¬κ²μ λμ strict-ssl
λ₯Ό false
νκ±°λ .yarnrc
νμΌμ νΈμ§ν΄μλ μ λλ€λ κ²μ λ§μΉ¨λ΄ λ°κ²¬νμ΅λλ€. μ΄μ λν κΉ¨λνκ³ μ΄μμ μΈ μ κ·Ό λ°©μμ -
$ yarn config set cafile "/physical/path/to/certificate-file.pem"
κ·Έλ¦¬κ³ κ·Έκ² λ€μΌ. μ΄ λͺ
λ Ήμ μ€νν ν SSLμ λμ§ μκ³ jqueryλ₯Ό μ±κ³΅μ μΌλ‘ μ€μΉν μ μμμ΅λλ€.
μμ yarn config list
λͺ
λ Ή μ νμ yarnμΌλ‘ ꡬμ±μ νμ νμΈν μ μμΌλ©° μμμ λ³κ²½ν μ¬νμ΄ μ μ©λμλμ§ μ¬λΆλ₯Ό νμΈν μ μμ΅λλ€. μΌλ°μ μΌλ‘ κ·Έλ μ΅λλ€. :)
@sandipt27 μ¬λ°λ₯Έ λ°©λ²μ μ°Ύλ λ° μκ°μ΄ λ무 μ€λ κ±Έλ¦¬κ² ν΄μ μ£μ‘ν©λλ€. μλ§λ λ€μκ³Ό κ°μ μ΄μ λ‘ μ°Ύμ§ λͺ»νμ κ²μ λλ€.
yarnrc
λ¬Έμ μμλ μ΄ λΉλ° κ΅¬μ± λ§€κ°λ³μλ₯Ό μ ν μΈκΈνμ§ μμμ΅λλ€. "λ¬Έμνλμ§ μμ κΈ°λ₯μ μ€νμ μ
λλ€"λΌλ κ·μΉμ Yarnμ μ μ©λμ§ μλ κ² κ°μ΅λλ€.cafile
λ μ΄λ² νΈμμ μ¬λ¬ λ² μΈκΈλμμ§λ§ λ λ§μ μ¬λλ€μ΄ 보μμ λν΄ μκ°νμ§ μκ³ λ¨μν "λλ SSLμ΄ μλνμ§ μλλ€"λΌκ³ μ€νΈ λ©μΌμ 보λ΄κ³ μμ΅λλ€. μ΄μ¨λ SSLμ΄ νμν μ¬λμ λꡬμ
λκΉ?λΉμ μ μλ§λ 3μ κ³ μΉ μ μκ³ 2λ λ€λ₯Έ λ²μμ μμ§λ§ λκ΅°κ°κ° λμμ 1μ κ³ μΉ μ μμ κ²μ λλ€. ν 리νμ€νΈλ₯Ό μ μνκ³ λ λ²μ§Έ λμ μνλ©΄ μ κ° μλ§ λμμ λ릴 μ μμ΅λλ€. μνΈμ λν μ§μ), λΉλ‘ λ΄κ° λ©μΈν μ΄λκ° μλκΈ° λλ¬Έμ κ·Έκ²μ μΉμΈν μ μμ§λ§.
https://github.com/yarnpkg/yarn/issues/841#issuecomment -559037850
κ·Έκ²μ λλ₯Ό μν΄ μλνμ§ μμ΅λλ€.
λ‘컬 λ°κΈμ μΈμ¦μλ‘ κ°μΈ μ μ₯μ(Verdaccio)λ₯Ό μ€μ νμ΅λλ€.
κ·Έλ¦¬κ³ μ°κ²°λ μΈμ¦μ νμΌλ‘ λμΌν μ€μ μ νμ΅λλ€.
κ·Έλ¬λ Yarnμ ν¨ν€μ§λ₯Ό λ€μ΄λ‘λνμ§ λͺ»νμ΅λλ€.
λ¬Έμ μμ΄ NPMμμ μλνμ΅λλ€.
@sandipt27 μ¬λ°λ₯Έ λ°©λ²μ μ°Ύλ λ° μκ°μ΄ λ무 μ€λ κ±Έλ¦¬κ² ν΄μ μ£μ‘ν©λλ€. μλ§λ λ€μκ³Ό κ°μ μ΄μ λ‘ μ°Ύμ§ λͺ»νμ κ²μ λλ€.
yarnrc
λ¬Έμ μμλ μ΄ λΉλ° κ΅¬μ± λ§€κ°λ³μλ₯Ό μ ν μΈκΈνμ§ μμμ΅λλ€. "λ¬Έμνλμ§ μμ κΈ°λ₯μ μ€νμ μ λλ€"λΌλ κ·μΉμ Yarnμ μ μ©λμ§ μλ κ² κ°μ΅λλ€.- NPM λ¬Έμ μ‘°μ°¨λ μ μ©νκΈ°μλ λ무 짧μ΅λλ€. μλ₯Ό λ€μ΄ νλ«νΌμ λ°λΌ μ΄λ€ μ’ λ₯μ νμ₯μ΄ μνλλμ§ μ§μ νμ§ μμμ΅λλ€. λ€μ λ§νμ§λ§, μ¬λλ€μ μ€λ«λμ λ¬Έμνλμ§ μμ κΈ°λ₯μ μ¬μ©ν΄ μμ΅λλ€.
- μ€μ λ‘
cafile
λ μ΄λ² νΈμμ μ¬λ¬ λ² μΈκΈλμμ§λ§ λ λ§μ μ¬λλ€μ΄ 보μμ λν΄ μκ°νμ§ μκ³ λ¨μν "λλ SSLμ΄ μλνμ§ μλλ€"λΌκ³ μ€νΈ λ©μΌμ 보λ΄κ³ μμ΅λλ€. μ΄μ¨λ SSLμ΄ νμν μ¬λμ λꡬμ λκΉ?λΉμ μ μλ§λ 3μ κ³ μΉ μ μκ³ 2λ λ€λ₯Έ λ²μμ μμ§λ§ λκ΅°κ°κ° λμμ 1μ κ³ μΉ μ μμ κ²μ λλ€. ν 리νμ€νΈλ₯Ό μ μνκ³ λ λ²μ§Έ λμ μνλ©΄ μ κ° μλ§ λμμ λ릴 μ μμ΅λλ€. μνΈμ λν μ§μ), λΉλ‘ λ΄κ° λ©μΈν μ΄λκ° μλκΈ° λλ¬Έμ κ·Έκ²μ μΉμΈν μ μμ§λ§.
ν 리νμ€νΈ(Pull Request)λ‘ μ΄λνμ¬ λ¬Έμ λ₯Ό ν΄κ²°νλ©΄ νμν λμμ νμ€ν μλ €λ릴 κ²μ λλ€. :)
Nexus νλ‘μ κ·Έλ£Ή λ€μ μμ μλ κ²κ³Ό κ°μ νμμ λ³΄κ³ μμ΅λλ€. μ΄ μμ μμ CA νμΌ μ€μ μ NPMκ³Ό YarnμΌλ‘ μ€μ λμ§λ§ μ¬μ ν μ€λ₯κ° λ°μν©λλ€.
β yarn config list
yarn config v1.21.1
info yarn config
{
'version-tag-prefix': 'v',
'version-git-tag': true,
'version-commit-hooks': true,
'version-git-sign': false,
'version-git-message': 'v%s',
'init-version': '1.0.0',
'init-license': 'MIT',
'save-prefix': '^',
'bin-links': true,
'ignore-scripts': false,
'ignore-optional': false,
registry: 'https://registry.yarnpkg.com',
'strict-ssl': true,
'user-agent': 'yarn/1.21.1 npm/? node/v12.14.1 darwin x64',
cafile: '/Users/XXXXXXX/pml_root_ca.pem',
email: 'XXXXXXXXXXXXXXX',
username: 'XXXXXXX'
}
info npm config
{
'//registry.npmjs.org/:_authToken': XXXXXXXXXXXXXXXXXXXXX',
cafile: '/Users/XXXXXXX/pml_root_ca.pem',
registry: 'https://XXXXXXXXXXXXXXXXX/repository/npmjs/',
'//nexus.pennmutual.com/repository/pml-npmjs/:_authToken': 'XXXXXXXXXXXXXXXXX',
python: '/usr/bin/python'
}
β¨ Done in 0.04s.
cdir-ui on ξ feature/build_api is π¦ v0.1.0 via β¬’ v12.14.1
β yarn install
yarn install v1.21.1
[1/5] π Validating package.json...
[2/5] π Resolving packages...
[3/5] π Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz: unable to get local issuer certificate".
info If you think this is a bug, please open a bug report with the information provided in "/Users/XXXXXXX/Projects/cdir-ui/yarn-error.log
cdir-ui on ξ feature/build_api is π¦ v0.1.0 via β¬’ v12.14.1
IIUC, μ΄λ€ μμΌλ‘λ ca
λλ cafile
λ₯Ό μ€μ νλ©΄, yarnμ λ
Έλμ TLS ꡬμ±μ μ 곡νκ³ , λͺ¨λ μ λ’° λ
Έλκ° μ€μ€λ‘ μ€μ νλ _κ΅μ²΄_ν©λλ€.
λμ , μμ€ν
μ CA μ λ’° μ μ₯μ(#6578)μ μΆκ° CAλ₯Ό λͺ¨λ μ¬μ©ν μ μμΌλ €λ©΄ yarn config list
ca
/ cafile
ꡬμ±λμ΄ μμ§ μμμ§ νμΈνκ³ λ€μμ μ€μ νμμμ€. νκ²½ λ³μ :
# Depends how Node was compiled, already default on many Linuxes but can't hurt:
export NODE_OPTIONS=--use-openssl-ca
export NODE_EXTRA_CA_CERTS=/path/to/file.crt
κ°μ₯ μ μ©ν λκΈ
λμΌν μν©μμ λμΌν λ¬Έμ κ° μμμ§λ§ μ΄ λͺ λ Ήμ
yarn config set strict-ssl false
μ€ννλλ° μλνμ΅λλ€.