Heute wurde der Heartbleed- OpenSSL-Exploit in freier Wildbahn angekündigt, der es einem Angreifer ermöglicht, private Serverschlüssel zu erkennen und zu stehlen (wodurch er MitM-fähig wird und Ihre verschlüsselten Daten entschlüsselt und Passwörter stiehlt). Dies betrifft OpenSSL-Versionen, einschließlich 1.0.1f, die auf meinem aktuellen Mavericks-Computer- Mac installiert sind (da ich mit port / brew andere Software installiert habe, die mein openssl aktualisiert hat, ohne dass ich es bemerkt habe ):
$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
Dies zeigt, dass ich nicht die Mavericks-Version von OpenSSL verwende:
$ which openssl
/opt/local/bin/openssl
OpenSSL hat heute einen Fix in 1.0.1g veröffentlicht und ich frage mich, wie ich diese feste Version über meine aktuelle Version installieren kann.
security
software-update
openssl
Dr. Jimbob
quelle
quelle
which openssl
könnte informativ sein. Das Hauptproblem ist nicht der Befehl openssl, sondern die openssl-Bibliotheken (die von anderen Programmen verwendet werden). Diese sind zwischen den Versionen 0.9.x und 1.0.x nicht API-kompatibel, sodass Sie das nicht aktualisieren möchten Vom System gelieferte openssl-Bibliotheken!MacPort
irgendwann auf diesem Rechner installiert, was mein openssl aufgerüstet hat. (Wahrscheinlich, als ich versuchte, Python 2.7 zum Laufen zu bringen). Wahrscheinlich sollte diese Frage gelöscht werden, aber falls andere nicht den gleichen Fehler machen, finden Sie die großartige Antwort von SapphireSun nützlich).openssl version
gibt 1.0.1g zurück, aber Sie sagen, dassopenssl
Befehle diese Version nicht verwenden?Antworten:
Für das, was es wert ist, habe ich gerade Homebrew verwendet ( http://brew.sh/ ):
Wenn eine der fehlerhaften Versionen (1.0.1a-f) auftaucht, können Sie auf folgende Weise herausfinden, welche Version von openssl Sie verwenden:
Oft ist dies aus / usr / bin. Um sicherzustellen, dass Sie die aktualisierte Version erhalten, legen Sie einen Symlink in / usr / local / bin ab, um auf das aktualisierte openssl zu verweisen:
Als Alternative zu diesem letzten Schritt ersetzen einige Leute die OpenSL-Eingabe
/usr/bin
durch einen Symlink zu/usr/local/Cellar/openssl/1.0.1g/bin/openssl
(oder was auch immer Ihre Version ist):Es ist jedoch bekannt, dass dies bei einigen neueren Versionen von OSX zu Problemen führt. Fügen Sie einfach einen neuen Symlink in / usr / local / bin ein, der auf Ihrem Pfad Vorrang vor / usr / bin haben sollte.
quelle
hash -r
/usr/bin/openssl
zu erstellen, kann man den Link unter erstellen/usr/local/bin/openssl
. Das sollte/usr/bin
Ihrem vorausgehen$PATH
und alle Probleme umgehen, die sich aus dem "Schutz der Systemintegrität" in neueren Versionen von OS X ergeben.Oder für diejenigen, die Mac-Ports verwenden und sich keine Sorgen um die Beibehaltung der Version machen
simples :-)
quelle
sudo port upgrade outdated
funktioniert auch.sudo port -f uninstall openssl @<old-version>
hat den Trick für mich :)Zum Auflösen des unbegrenzten Speicherzuwachses bei OCSP-Statusanforderungserweiterungen (CVE-2016-6304) unter macOS Sierra
brew
mit aktiviertem Systemintegritätsschutz :Passen Sie die Berechtigungen für vorübergehend an,
/usr/local
damit das Brühen aktualisiert werden kann:Installieren Sie die aktualisierte Version von OpenSSL (Sie möchten wahrscheinlich 1.0.2i):
Möglicherweise möchten / müssen Sie einen vorhandenen Symlink zu openssl löschen von
/usr/local/bin
:Verknüpfen Sie die richtige Brühversion erneut:
Stellen Sie die ursprünglichen Berechtigungen wieder her für
/usr/local/bin
:quelle
$PATH
Variable, um nachzuschauen/usr/local/bin
?$ openssl version
bekomme ich,OpenSSL 0.9.8zh 14 Jan 2016
aber wenn ich renne,$ brew install openssl
bekomme ichWarning: openssl 1.0.2l is already installed
. Heißt das, ich habe zwei Versionen installiert? Was genau soll ich jetzt tun?Wer keinen Brew oder keine Ports verwenden möchte und nur die Standardinstallation von OpenSSL 0.9.8 ersetzen möchte, kann den Systemintegritätsschutz jederzeit deaktivieren, indem er im Wiederherstellungsmodus (cmd + R) neu startet und ausstellt
und kompiliere danach openssl mit
Es hat OpenSSL in ElCapitan für mich erfolgreich ersetzt und ich konnte curl und apaches httpd 2.4 ohne Probleme direkt aus den Quellen kompilieren. Die Gründe für die Methode, die manche als drastisch erachten, sind, dass ElCapitan nicht mehr von Apple gepflegt wird und keine Updates anstehen, so dass es wahrscheinlich nicht kaputt geht. Zweitens erspart es Ihnen, für jedes Programm, das Sie kompilieren, auf den Ordner openssl in / usr / local zu verweisen, wodurch die Kompilierung robuster wird.
quelle