Сегодня в дикой природе был анонсирован уязвимый OpenSSL-эксплойт, который позволяет злоумышленнику тайно обнаруживать и похищать приватные ключи сервера (позволяя им MitM и расшифровывать зашифрованные данные и воровать пароли). Это влияет на версии OpenSSL, включая 1.0.1f, которая является версией на моем современном Mac- компьютере Mavericks (потому что я использовал порт / brew для установки другого программного обеспечения, которое обновляло мой openssl, но я этого не осознавал ):
$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
Это показывает, что я не использую версию OpenSL от Mavericks:
$ which openssl
/opt/local/bin/openssl
OpenSSL выпустил исправление сегодня в 1.0.1g, и мне интересно, как я могу установить эту исправленную версию поверх моей текущей версии?
security
software-update
openssl
доктор джимбоб
источник
источник
which openssl
может быть информативным. Кроме того, основная проблема не в команде openssl, а в библиотеках openssl (которые используются другими программами) - они не совместимы с API между версиями 0.9.x и 1.0.x, поэтому вы не хотите обновлять поставляемые системой библиотеки openssl!MacPort
в какой-то момент на эту машину, которая обновила мой openssl. (Вероятно, когда я пытался заставить работать Python2.7). Вероятно, следует удалить этот вопрос, но не в случае, если другие совершат ту же ошибку, найдут полезный ответ SapphireSun).openssl version
возвращает 1.0.1g, но вы говорите, чтоopenssl
команды не используют эту версию?Ответы:
Для чего это стоит, я просто использовал доморощенный ( http://brew.sh/ ):
Если появится одна из плохих версий (1.0.1a-f), вы можете выяснить, какую версию openssl вы используете, следующим образом:
Часто это из / usr / bin. Чтобы убедиться, что вы получили обновленную версию, поместите символическую ссылку в / usr / local / bin, чтобы указать на обновленный openssl, например так:
В качестве альтернативы этому последнему шагу некоторые люди заменяют openssl
/usr/bin
символической ссылкой на/usr/local/Cellar/openssl/1.0.1g/bin/openssl
(или любой другой версией):Но это, как известно, вызывает проблемы с некоторыми более поздними версиями OSX. Лучше просто вставить новую символическую ссылку в / usr / local / bin, которая должна иметь приоритет на вашем пути над / usr / bin.
источник
hash -r
/usr/bin/openssl
, можно создать ссылку в/usr/local/bin/openssl
. Это должно предшествовать/usr/bin
вашей$PATH
Или для тех, кто использует порты Mac и не беспокоится о сохранении версии
просто :-)
источник
sudo port upgrade outdated
тоже работает.sudo port -f uninstall openssl @<old-version>
сделалДля разрешения неограниченного увеличения объема памяти запроса на расширение статуса OCSP (CVE-2016-6304) в macOS Sierra
brew
с включенной защитой целостности системы :Временно настройте права доступа,
/usr/local
чтобы brew мог обновить:Установите обновленную версию OpenSSL (вы, вероятно, хотите 1.0.2i):
Вы можете / должны удалить существующую символическую ссылку на openssl из
/usr/local/bin
:Перепишите правильную версию напитка:
Восстановить исходные разрешения на
/usr/local/bin
:источник
$PATH
переменную для поиска/usr/local/bin
?$ openssl version
я получаю,OpenSSL 0.9.8zh 14 Jan 2016
но когда я бегу,$ brew install openssl
я получаюWarning: openssl 1.0.2l is already installed
. Значит ли это, что у меня установлены две версии? Что именно мне теперь делать?Тот, кто не хочет использовать brew или порты и просто хочет заменить установку OpenSSL 0.9.8 по умолчанию, всегда может отключить защиту целостности системы, перезагрузившись в режим восстановления (cmd + R) и выполнив команду
а затем скомпилировать openssl с
Он успешно заменил OpenSSL в ElCapitan для меня, и я смог без проблем скомпилировать httpd 2.4 для curl и apache напрямую из источников. Причиной этого метода, который некоторые могут счесть радикальным, является то, что ElCapitan больше не поддерживается Apple, и никаких обновлений не ожидается, так что, скорее всего, он не сломается. Во-вторых, это избавляет вас от указания на папку openssl в / usr / local для каждой программы, которую вы компилируете, что делает компиляцию более надежной.
источник