Heim >Web-Frontend >js-Tutorial >Meine Erkenntnisse durch Fehlermeldung „error:digital Envelope routines::unsupported'

Meine Erkenntnisse durch Fehlermeldung „error:digital Envelope routines::unsupported'

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 09:24:09818Durchsuche

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.

My learnings through Error message “error:digital envelope routines::unsupported”

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn