[Node.js] digital envelope routines::unsupported 에러 해결 방법

2024. 11. 21. 20:00·Back-End/Node.js
목차
  1. 📝 해결 방법
  2. 추천 방식
# 에러 로그
Error: error:0308010C:digital envelope routines::unsupported

Quasar로 구축된 Vue.js 프로젝트에서

위와 같은 에러가 발생했습니다.

 

Node.js v17부터 OpenSSL 3.0이 기본적으로 포함되어 있기 때문에

이전 버전의 암호화 알고리즘(legacy 알고리즘)을 사용하는

패키지나 라이브러리에서는 호환성 문제가 발생하게 됩니다.

 

해결 방법 함께 알아봅시다. 😀


📝 해결 방법

https://github.com/webpack/webpack/issues/14532

 

해당 깃허브 이슈를 살펴보면 webpack 4버전에서 이슈가 존재하는 듯 합니다.

 

⦁ 방법 1. OpenSSL 레거시 모드 활성화 

Node.js v17 이상을 유지하면서 문제를 해결하려면 openSSL의 레거시 모드를 활성화해야 합니다.

// 방법 1. 실행 명령에 옵션 추가
node --openssl-legacy-provider app.js

// 방법 2. 패키지 스크립트 수정
// package.json
"scripts": {
  "dev": "quasar dev", // 기존 실행 코드
  "dev2": "export NODE_OPTIONS=--openssl-legacy-provider && quasar dev",  // 옵션 추가 실행 코드
},

이 방법은 빠르고 간단하며, 스크립트에 옵션을 추가하는 것만으로 해결이 가능합니다.

 

⦁ 방법 2. Node.js 버전 다운그레이드

Node.js 버전을 17 아래 버전으로 설정하면 해결이 됩니다.

nvm 혹은 IDE의 디버그 세팅에서 Node.js 버전을 변경하고 실행해 보세요. 😎

 

추천 방식

  1. 새로운 프로젝트 또는 Node.js 최신 기능이 필요한 프로젝트:
    openssl-legacy-provider 방법을 사용.
  2. 장기적으로 유지될 프로젝트나 구버전 라이브러리가 많은 경우:
    Node.js 버전을 16(LTS)로 다운그레이드.

 

프로젝트의 특성과 상황에 맞게 선택하세요 !

하지만 근본적인 해결책은 패키지의 최신 버전을 점검하고,

가능하다면 버전업을 하는 게 좋겠습니다. 😎

 

 


 


참고 문헌 : 

https://wiki.openssl.org/index.php/OpenSSL_3.0#Upgrading_to_OpenSSL_3.0_from_OpenSSL_1.0.2

https://stackoverflow.com/questions/69962209/what-is-openssl-legacy-provider-in-node-js-v17

'Back-End > Node.js' 카테고리의 다른 글

[Node.js] React와 Express로 CRUD 게시판 웹 서버 만들기 - 2 (REST API)  (2) 2022.09.22
[Node.js] Express 웹 서버 만들기 (mySQL 연동) - 1  (0) 2022.09.13
  1. 📝 해결 방법
  2. 추천 방식
'Back-End/Node.js' 카테고리의 다른 글
  • [Node.js] React와 Express로 CRUD 게시판 웹 서버 만들기 - 2 (REST API)
  • [Node.js] Express 웹 서버 만들기 (mySQL 연동) - 1
현기
현기
현기의 개발블로그현기 님의 블로그입니다.
  • 현기
    현기의 개발블로그
    현기
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • Front-End (39)
        • Next (5)
        • React (8)
        • React Native (11)
        • Flutter (0)
        • Vue (1)
        • JSP (9)
        • HTML, CSS, JS (5)
      • Back-End (16)
        • Node.js (3)
        • Spring (8)
        • Flask (1)
        • AWS (4)
      • DB (5)
        • Oracle (4)
        • MySQL (1)
      • Python (7)
      • Java (27)
        • 자바 이론 (17)
        • 코딩테스트 연습 & 실습 (10)
      • 자료구조 & 알고리즘 (7)
        • 코딩테스트 (6)
        • 알고리즘 (1)
      • 블록체인 (0)
      • 프롬프트 엔지니어링 (0)
      • CS 지식 (5)
      • IT뉴스 (0)
      • 일상 (3)
      • etc (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    Python
    next-intl
    파이썬
    DI
    상속
    오라클
    자바 스프링
    IS-A
    Spring
    쓰레드
    react
    서블릿
    스택
    React Native
    큐
    포스트맨
    React Native Chart
    티스토리챌린지
    리액트 네이티브
    react-native-chart-kit
    그리디
    Express
    오블완
    JDBC
    REST API
    자바
    node.js
    자바스크립트
    JSP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
현기
[Node.js] digital envelope routines::unsupported 에러 해결 방법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.