Skip to main content

`Error: error:0308010C:digital envelope routines::unsupported` 오류 해결하기



최신 노드 버전을 사용하면서 과거에 작업했던 프로젝트실행하거나 빌드할 경우 아래와 같은 오류발생할 수 있습니다.

Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:68:19)
at Object.createHash (node:crypto:138:10)
at module.exports (/Users/syki66/Desktop/test/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/syki66/Desktop/test/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/syki66/Desktop/test/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/syki66/Desktop/test/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/Users/syki66/Desktop/test/node_modules/react-scripts/scripts/build.js:19
throw err;
^

아래 방법 중 하나를 적용하면, 오류 해결이 가능합니다.


1. package.json 수정 (권장)

package.json 파일에 들어가면 아래와 같이 npm start, npm run build 시 실행되는 스크립트가 존재합니다.

"start": "react-scripts start",
"build": "react-scripts build"

아래와 같이 --openssl-legacy-provider 옵션을 넣고 다시 실행, 빌드하면 정상적으로 진행됩니다.

"start": "react-scripts --openssl-legacy-provider start",
"build": "react-scripts --openssl-legacy-provider build"

2. Node 버전 낮추기

두번째 방법은 노드 버전낮추면 되는데, 간편하게 nvm을 사용하면 됩니다. (참고: 맥에서 nvm 설치 및 사용 방법)

nvm use 16

3. 명령어 실행

터미널에서 환경변수를 설정한 뒤, 실행, 빌드하면 정상적으로 진행됩니다.


Unix 계열 (macOS, 리눅스, Git bash 등)

export NODE_OPTIONS=--openssl-legacy-provider

Windows command prompt

set NODE_OPTIONS=--openssl-legacy-provider

Windows PowerShell

$env:NODE_OPTIONS = "--openssl-legacy-provider"





참고자료