본문 바로가기
Open Source Solution/Jitsi Meet

[Jistsi Meet] npm install 시 에러 unable to verify the first certificate

by 주리니e 2022. 9. 5.
728x90

[Jistsi Meet]  npm install 시 에러 unable to verify the first certificate 

 

아래 사이트에서는 Jitsi Meet 개발환경 구축에 대하여 기술되어 있다. 아래 사이트와 같이 개발환경 설정 중 npm install 시 unable to verify the first certificate 발생하였고 이에 대한 포스팅을 작성하고자 한다. 

 

Developer Guide (Web) | Jitsi Meet

Welcome to the developers guide for web! This guide will help you setup a development

jitsi.github.io

 

  • npm install 실패
$ npm install
npm ERR! code 1
npm ERR! path C:\jitsi-meet\node_modules\react-native-webrtc
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node tools/downloadWebRTC.js
npm ERR! Downloading https://github.com/jitsi/webrtc/releases/download/v100.0.0/android-webrtc.tgz...
npm ERR! node:internal/process/promises:279
npm ERR!             triggerUncaughtException(err, true /* fromPromise */);
npm ERR!             ^
npm ERR!
npm ERR! Error: unable to verify the first certificate
npm ERR!     at TLSSocket.onConnectSecure (node:_tls_wrap:1535:34)
npm ERR!     at TLSSocket.emit (node:events:513:28)
npm ERR!     at TLSSocket._finishInit (node:_tls_wrap:949:8)
npm ERR!     at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:730:12) {
npm ERR!   code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
npm ERR! }

GitHub 에서 android-webrtc.tgz 다운받아 설치 중 위와 같은 오류가 발생하였다. 
이 문제를 해결하기 위해 여러 방법을 시도해보았는데 Node.js 의 안정화버전이 아닌 최신버전(NPM 포함)으로 시도하였지만 실패하였다. 또 구글링 검색을 통해 아래와 같이 HTTPS 통신을 우회하게끔 적용해보았지만 결국 실패하였다. 

$ npm config set strict-ssl false
$ npm config set registry="http://registry.npmjs.org/"

 

npm의 문제는 아닌 것 같고 실시간 커뮤니케이션에 사용되는 WebRTC에 대해서 알아보았다. 

 

WebRTC

An open framework for the web that enables Real-Time Communications (RTC) capabilities in the browser.

webrtc.org

웹을 위한 실시간 커뮤니케이션

WebRTC를 사용하면 개방형 표준 외에 작동하는 실시간 통신 기능을 애플리케이션에 추가할 수 있습니다. 동영상, 음성, 일반 데이터를 동종 앱 간에 전송할 수 있어 개발자가 강력한 음성 및 영상 통신 솔루션을 구축할 수 있습니다. 이 기술은 모든 최신 브라우저뿐만 아니라 모든 주요 플랫폼의 기본 클라이언트에서 사용할 수 있습니다. WebRTC를 뒷받침하는 기술은 개방형 웹 표준으로 구현되며 모든 주요 브라우저에서 일반 자바스크립트 API로 제공됩니다. Android 및 iOS 애플리케이션과 같은 네이티브 클라이언트의 경우 동일한 기능을 제공하는 라이브러리를 사용할 수 있습니다. WebRTC 프로젝트는 오픈소스이며 Apple, Google, Microsoft, Mozilla 등의 지원을 받습니다. Google WebRTC팀에서 관리하는 페이지입니다.

 

결국 찾은 해답은..?
react-native-webrtc의 버전 문제였다. 1.92.2는 정상적으로 npm install 을 통한 패키지 설치가 정상적으로 되나 1.94.0부터 최신버전인 1.100.1까지 시도해보았지만 동일한 오류가 발생하였다. 아래 페이지는 릴리즈된 버전 목록이니 참고하길 바란다.

 

Releases · react-native-webrtc/react-native-webrtc

The WebRTC module for React Native. Contribute to react-native-webrtc/react-native-webrtc development by creating an account on GitHub.

github.com

 

jitsi-meet 디렉토리안의 package.json 파일을 열어 react-native-webrtc의 선언된 버전을 수정하자.

  • package.json
...

"react-native-webrtc": "1.92.2",

...

 

  • npm install 성공
$ npm install
> jitsi-meet@0.0.0 postinstall
> patch-package --error-on-fail && jetify

patch-package 6.4.7
Applying patches...
@giphy/js-analytics@4.0.7 ✔
@giphy/js-brand@2.0.4 ✔
eslint-plugin-flowtype@8.0.3 ✔
react-native@0.68.1 ✔
react-native-gesture-handler@2.1.0 ✔

위와 같이 npm install 은 성공하였지만 Jitsi Meet GitHub에서 다운받은 파일이 정상적으로 설치가 되지 않고 패키지 버전을 다운그레이드해야해서 기분이 썩 좋진 않았다. 분명 누군가는 정상적으로 설치를 하였으니 GitHub에 올려놨을테니 말이다. 누군가 이 문제를 해결할 더 좋은 방법을 알거나 설명을 해주실 수 있다면 감사합니다.

728x90

댓글