풀 스택 애플리케이션을 작업하는 동안 이 암호화 오류를 발견했고 StackOverflow 및 ChatGPT에서 이 오류를 검색했을 때 Node.js의 OpenSSL 처리 변경으로 인해 이 오류가 발생했다는 것을 알게 되었습니다. 즉, 내 애플리케이션이 Node.js와 함께 번들로 제공되는 현재 OpenSSL 버전에서 더 이상 지원되지 않는 암호화 알고리즘이나 기능을 사용하려고 했습니다. 따라서 오류는 실제로 더 이상 사용되지 않는 SSL 버전에 의존하여 다운로드한 종속성에서 발생한 것입니다.
그러면 이 오류를 수정하려면 다음을 수행하세요.
처음에는 node_modules 폴더를 삭제하려고 했습니다(프런트엔드에서
작업 공간/폴더)을 다시 설치하고 npm install을 다시 실행하여 다시 설치하세요.
종속성. 그러나 이 문제는 해결되지 않았습니다.
이제 더 이상 사용되지 않는
호환성 문제를 해결하기 위해 알고리즘을 레거시 모드로 변경했습니다.
그리고 더 이상 사용되지 않는 알고리즘에 관해 검색하던 중
에서 배운 PGP(Pretty Good Privacy)의 SHA-1이 생각났습니다.
대학 전 학기, 컴퓨터 네트워크. SHA-1은 해싱입니다
때문에 더 이상 사용되지 않는 알고리즘이 된 알고리즘
보안 문제.
그리고 주제를 계속 이어가면서 내 앱은 이전 버전과의 호환성도 요구하는 중요하지 않은 애플리케이션이었기 때문에 임시 해결 방법으로 --openssl-legacy-provider 플래그를 계속 사용하기로 결정했습니다. 이것이 나에게 도움이 될 것이기 때문입니다. 발생할 수 있는 오류에 대해 자세히 알아보고, 원인과 해결 방법에 대해 자세히 알아보고, 프로세스 중에 발생할 수 있는 기타 다양한 용어에 대해 알아보세요.
--openssl-legacy-provider를 사용하면 Node.js에 OpenSSL의 레거시 공급자를 활용하도록 지시하여 이러한 암호화 기능에 대한 지원을 복원함으로써 레거시 알고리즘을 사용할 수 있습니다.
그래서 터미널에서 다음으로 시작했습니다.
npm update npm audit fix — force
그런 다음 package.json 파일을 다음과 같이 변경했습니다.
이전 :
"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }
이후 :
"scripts": { "start": "react-scripts --openssl-legacy-provider start", "build": "react-scripts --openssl-legacy-provider build", "test": "react-scripts test", "eject": "react-scripts eject" }
이제 마침내 문제가 해결되었으며, 이 문제를 직접 해결하려고 노력함으로써 다양한 것에 대해 배우고, npm의 세부 기능, 버전 관리 방법, 더 이상 사용되지 않는 기존 알고리즘 등에 대해 배우는 방식이 마음에 들었습니다. .
위 내용은 오류 메시지 '오류:디지털 봉투 루틴::지원되지 않음'을 통해 배운 점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!