Heim >Web-Frontend >js-Tutorial >Meine Erkenntnisse durch Fehlermeldung „error:digital Envelope routines::unsupported'
Während ich an meiner Full-Stack-Anwendung arbeitete, stieß ich auf diesen kryptografischen Fehler und als ich auf StackOverflow und ChatGPT danach suchte, erfuhr ich, dass er aufgrund von Änderungen in der Handhabung von OpenSSL durch Node.js entstanden war kryptografische Vorgänge, d. h. meine Anwendung hat versucht, kryptografische Algorithmen oder Funktionen zu verwenden, die in der aktuellen OpenSSL-Version, die mit Node.js gebündelt ist, nicht mehr unterstützt werden. Der Fehler kam also tatsächlich von der Abhängigkeit, die ich heruntergeladen hatte und die auf einer veralteten Version von SSL beruhte.
Daraufhin diesen Fehler beheben:
Zuerst habe ich versucht, meinen Ordner „node_modules“ (aus dem Frontend
) zu löschen
Arbeitsbereich/Ordner) und führen Sie npm install erneut aus, um
neu zu installieren
die Abhängigkeiten. Dies löste das Problem jedoch nicht.
Dann habe ich jetzt verstanden, dass ich das veraltete
ändern sollte
Algorithmus in den Legacy-Modus umzustellen, um die Kompatibilitätsprobleme zu lösen.
Und als ich nach den veralteten Algorithmen suchte, hat es mich erwischt
erinnert an den SHA-1 in PGP (Pretty Good Privacy), den ich im
gelernt habe
vorheriges Semester am College, in Computernetzwerken. SHA-1 ist ein Hashing
Algorithmus, der aufgrund von
zu einem veralteten Algorithmus geworden ist
Sicherheitsprobleme.
Und um mit dem Thema fortzufahren: Da es sich bei meiner App um eine unkritische Anwendung handelte, die auch eine gewisse Abwärtskompatibilität erforderte, habe ich beschlossen, als vorübergehende Problemumgehung weiterhin das Flag --openssl-legacy-provider zu verwenden, da mir dies helfen würde Erfahren Sie mehr über die möglichen Fehler, die auftreten können, erfahren Sie mehr über die Ursachen und deren Behebung sowie über verschiedene andere Begriffe, die mir während des Prozesses möglicherweise begegnen könnten.
Der --openssl-legacy-provider ermöglicht die Verwendung von Legacy-Algorithmen, indem er Node.js anweist, den Legacy-Provider von OpenSSL zu nutzen, wodurch die Unterstützung für solche kryptografischen Funktionen wiederhergestellt wird.
Also begann ich im Terminal mit:
npm update npm audit fix — force
Dann habe ich an der Datei package.json die folgenden Änderungen vorgenommen:
VOR :
"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }
NACH:
"scripts": { "start": "react-scripts --openssl-legacy-provider start", "build": "react-scripts --openssl-legacy-provider build", "test": "react-scripts test", "eject": "react-scripts eject" }
Damit wurde das Problem endlich gelöst und ich fand es toll, wie ich durch den Versuch, dieses Problem selbst zu lösen, Fortschritte gemacht habe und dabei Fortschritte gemacht habe. Ich habe gelernt, wie npm im Detail funktioniert, wie Versionen verwaltet werden, welche veralteten und veralteten Algorithmen es gibt usw .
Das obige ist der detaillierte Inhalt vonMeine Erkenntnisse durch Fehlermeldung „error:digital Envelope routines::unsupported'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!