Aktualisieren Sie OpenSSL unter OS X mit Homebrew

79

Ich verwende MacOS X 10.7.5 und benötige aufgrund von Handshake-Fehlern eine neuere OpenSSL-Version . Es gibt mehrere Tutorials im Internet und ich habe Folgendes versucht:

brew install openssl
brew link openssl --force

Trotzdem funktioniert es nicht:

openssl version
OpenSSL 0.9.8r 8 Feb 2011

brew unlink openssl && brew link openssl --force
Unlinking /usr/local/Cellar/openssl/1.0.1e... 1139 links removed
Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created

Das SVN-Problem ist ebenfalls nicht behoben. Irgendwelche Ideen? Ich würde den MacPorts-Weg lieber nicht ausprobieren, da er Homebrew stören könnte.

Joachim
quelle
1
Sei froh, dass es nicht funktioniert hat. Version 0.9.8r litt nicht unter dem HeartBleed-Fehler. Wenn Sie im März 2013 erfolgreich aktualisiert haben, ist das von Ihnen erstellte SSL-Zertifikat kompromittiert und Sie müssen es jetzt erneut eingeben. Betroffene Versionen finden Sie unter heartbleed.com.
Houman
3
Diese Frage scheint nicht zum Thema zu gehören, da es nicht um Programmierung oder Entwicklung geht. Siehe Welche Themen kann ich hier in der Hilfe erfragen? Vielleicht ist Super User oder Apple Stack Exchange ein besserer Ort, um zu fragen.
JWW

Antworten:

88

Wenn Sie Homebrew verwenden, sollte / usr / local / bin bereits vorne $PATHoder zumindest vor / usr / bin stehen . Wenn Sie jetzt brew link --force opensslin Ihrem Terminalfenster ausgeführt werden, öffnen Sie ein neues und führen Sie which openssles aus. Es sollte jetzt opensslunter / usr / local / bin angezeigt werden .

Olaf Heinemann
quelle
2
Ich habe installiert 1.0.2h_1, aber ich bin genau in der gleichen Situation, openssl version -agibt mir aber trotzdem OpenSSL 0.9.8zg 14 July 2015. Irgendwelche Vorschläge?
Pmpr
84
Dieser funktioniert nicht, weilbrew link --force openssl Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
Timo
6
@ TimoLehto Konnten Sie dieses Problem beheben?
Ich stehe
3
@TimoLehto Keine Ahnung, ob dies eine gute oder sogar sichere Vorgehensweise ist, aber Sie können jederzeit einen Link von / usr / local / bin zu / usr / local / opt / openssl / bin / openssl erstellen. Dies kann mit dem folgenden Befehl erfolgen : ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl. Um es klar auszudrücken: Ich kann Ihnen nicht versprechen, dass dies eine sichere oder korrekte Vorgehensweise ist.
Brunodd
2
Weitere Informationen zu diesem Problem: stackoverflow.com/questions/38670295/…
ekkis
12

Führen Sie in einem Terminal Folgendes aus:

export PATH=/usr/local/bin:$PATH
brew link --force openssl

Möglicherweise müssen Sie die Verknüpfung von openssl zuerst aufheben, wenn Sie eine Warnung erhalten: brew unlink openssl

Dies stellt sicher, dass wir das richtige openssl für diese Situation verknüpfen. (und spielt nicht mit .profile)

Hutspitze zu @ Olafs Antwort und @ Felipes Kommentar. Einige Leute - wie ich - haben vielleicht einige ziemlich durcheinandergebrachte PATH-Vars.

Marc Smith
quelle
9
Es heißt nurRefusing to link: openssl
Rogerdpack
11

installierte openssl auf dem Mac mit Brew, aber nichts gefunden, /usr/local/binwo sich andere installierte Brew-Bins befinden. Habe mein frisches OpenSl hier gefunden:

/usr/local/opt/openssl/bin/openssl

Führen Sie es so aus:

/usr/local/opt/openssl/bin/openssl version

Ich möchte OS X openssl nicht aktualisieren, während einige Betriebssysteme oder andere Apps von Drittanbietern möglicherweise von älteren Versionen abhängig sind.

Ich habe auch nichts gegen einen längeren Weg als nur openssl

Schreiben Sie dies hier für alle Googler, die nach dem Standort von openssl suchen, das von Brew installiert wurde.

Lukas Liesis
quelle
6

Ich hatte dieses Problem und stellte fest, dass die Installation der neueren Version openssltatsächlich funktionierte, aber meine PATHwurde falsch eingerichtet - ich $PATHhatte den Portpfad vor meinem Brühpfad platziert, sodass immer die ältere Version von gefunden wurde openssl.

Die Lösung für mich bestand darin, den Pfad zu brew(/ usr / local / bin) an die Vorderseite meines zu setzen $PATH.

Um herauszufinden, woher Sie laden openssl, führen which opensslSie die Ausgabe aus und notieren Sie sie. Dies ist der Speicherort der Version, die Ihr System beim Ausführen verwendet openssl. Es wird irgendwo anders sein als der brewPfad von "/ usr / local / bin". Ändern Sie Ihre $PATH, schließen Sie die Registerkarte "Terminal", öffnen Sie eine neue und führen Sie sie aus which openssl. Sie sollten jetzt einen anderen Pfad sehen, wahrscheinlich unter / usr / local / bin. Führen openssl versionSie nun aus und Sie sollten die neue Version sehen, die Sie "OpenSSL 1.0.1e 11 Feb 2013" installiert haben.

GregT
quelle
5

Um Ihre Frage zum Aktualisieren von openssl zu beantworten, habe ich diese Schritte ausgeführt, um die auf meinem Mac gefundene Version erfolgreich auf die neueste openssl-Version 1.0.1e zu aktualisieren.

Ich habe die hier aufgeführten Schritte ausgeführt: http://foodpicky.com/?p=99

Wenn Sie die Schritte für Terminalbefehle make und make install erreichen , stellen Sie sicher, dass Sie sudo make und sudo make install verwenden (ich musste die Schritt-für-Schritt-Anleitung zweimal durchlaufen, da ich sie ohne sudo ausgeführt und nicht aktualisiert habe).

Hoffe das hilft

frisch
quelle
3
Zu Ihrer Information: 1.0.1e (insbesondere 1.0.1a-f) weist ab heute eine schwerwiegende Sicherheitslücke auf. Zukünftige Leser, stellen Sie sicher, dass Sie auf mindestens 1.0.1g heartbleed.com
SapphireSun
Die alte Version wird immer noch für mich angezeigt
quantumpotato
2
Minus Eins : "... verwenden Sie unbedingt sudo make ..." - Sie machen nicht mit Privilegien. Sie nurmakeund und dann,sudo make installwenn nötig. Sie haben auch einen schrecklichen Hinweis zitiert. Es ersetzt Apples OpenSSL 0.9.8/usrdurch das aktualisierte 1.0.x. Das ist wirklich schlecht, weil es keine Binärkompatibilität gibt.
JWW
3

Ich hatte Probleme bei der Installation einiger Wordpress-Plugins auf meinem lokalen Server mit php56 unter OSX10.11. Die Verbindung auf der externen API über SSL ist fehlgeschlagen.

Die Installation von openSSL hat mein Problem nicht gelöst. Aber dann habe ich herausgefunden, dass CURL auch neu installiert werden muss.

Dies löste mein Problem mit Homebrew.

brew rm curl && brew install curl --with-openssl

brew uninstall php56 && brew install php56 --with-homebrew-curl --with-openssl
De Potter Bart
quelle
1

Unter Mac OS X Yosemite wird es nach der Installation mit Brew installiert

/ usr / local / opt / openssl / bin / openssl

Beim Versuch, eine Verknüpfung herzustellen, wird jedoch immer wieder die Fehlermeldung "Nur Keg-OpenSL verknüpfen bedeutet, dass Sie möglicherweise mit dem Unsicheren verknüpfen" angezeigt

Also habe ich es einfach verknüpft, indem ich den vollständigen Pfad so angegeben habe

ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl

Jetzt wird die Version OpenSSL 1.0.2o angezeigt, wenn ich "openssl version -a" mache. Ich gehe davon aus, dass es funktioniert hat

Robert Sinclair
quelle
-8
  1. Port installieren: https://guide.macports.org/
  2. installiere oder aktualisiere das openssl-Paket: sudo port install opensslodersudo port upgrade openssl
  3. Das war's, lauf openssl version, um das Ergebnis zu sehen.
Morteza Sepehri Niya
quelle
2
Die Frage betraf Homebrew ... Macports ist kein Homebrew ... Das OP gibt an, dass sie es vorziehen, keine Mac-Ports zu verwenden.
Wade Williams
@WadeWilliams mac in der neuen Version Dosis können Sie nicht aktualisieren opensslverwenden Homebrew, meine ich Sie können es installieren oder aktualisieren , verwenden Homebrewaber Sie können es nicht priorisieren. Anstatt es mit zu aktualisieren, können HomebrewSie es mit aktualisieren macports und priorisieren.
Morteza Sepehri Niya