Обновите OpenSSL в OS X с помощью Homebrew

Я использую MacOS X 10.7.5 и мне нужна более новая версия OpenSSL из-за ошибок при рукопожатии. В Интернете есть несколько учебных пособий, и я попробовал следующее:

brew install openssl
brew link openssl --force

Тем не менее, это не работает

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

Проблема SVN также не решена. Есть идеи? Я бы предпочел не использовать MacPorts, потому что это может помешать Homebrew.

11 ответов

Решение

If you're using Homebrew /usr/local/bin should already be at the front of $PATH or at least come before /usr/bin. Если вы сейчас бежите brew link --force openssl в окне терминала откройте новое и запустите which openssl в этом. Теперь должно показать openssl в / usr / local / bin.

Установил openssl на mac с brew, но ничего не нашел на /usr/local/bin где находятся другие контейнеры для варки. Нашел мой свежий openssl здесь:

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

Запустите это так:

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

Я не хочу обновлять OS X openssl, в то время как некоторые компоненты ОС или другие сторонние приложения могут зависеть от более старой версии.

Я также не против более длинного пути, чем просто openssl

Написание здесь для всех Googlers, которые ищут местоположение openssl, установленного brew.

В терминале запустите:

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

Возможно, вам придется сначала отменить связь с openssl, если вы получите предупреждение: brew unlink openssl

Это гарантирует, что мы связываем правильный openssl для этой ситуации. (и не связывается с.profile)

Шляпная подсказка к ответу @ Олафа и комментарию @ Фелипе. У некоторых людей, таких как я, могут быть некоторые запутанные переменные PATH.

У меня была эта проблема и обнаружил, что установка более новой openssl действительно работал, но мой PATH был неправильно настроен для этого - мой $PATH путь к портам был размещен до моего пути варки, поэтому он всегда находил более старую версию openssl,

Решением для меня было проложить путь к brew (/ usr / local / bin) в передней части моего $PATH,

Чтобы узнать, куда вы грузите openssl от, запустить which openssl и обратите внимание на вывод. Это будет расположение версии, которую использует ваша система при запуске openssl, Это будет где-то кроме brewпуть к "/ usr / local / bin". Измени свой $PATHзакройте вкладку терминала, откройте новую и запустите which openssl, Теперь вы должны увидеть другой путь, вероятно, в / usr / local / bin. Теперь беги openssl version и вы должны увидеть новую установленную вами версию "OpenSSL 1.0.1e 11 февраля 2013".

Чтобы ответить на ваш вопрос об обновлении openssl, я выполнил следующие шаги, чтобы успешно обновить найденную на моем Mac версию до новейшей версии openssl 1.0.1e.

Я следовал инструкциям, найденным здесь: http://foodpicky.com/?p=99

Когда вы достигнете шагов для терминальных команд make и make install, обязательно используйте sudo make и sudo make install (мне пришлось пройти через пошаговые инструкции дважды, потому что я делал это без sudo, и он не обновлялся).

Надеюсь это поможет

У меня были проблемы с установкой некоторых плагинов Wordpress на мой локальный сервер под управлением php56 на OSX10.11. Им не удалось подключиться по внешнему API через SSL.

Установка openSSL не решила мою проблему. Но потом я понял, что CURL тоже нужно переустанавливать.

Это решило мою проблему, используя Homebrew.

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

brew uninstall php56 && brew install php56 --with-homebrew-curl --with-openssl

На Mac OS X Yosemite, после установки его с помощью brew, поместите его в

/ USR / местные / Opt / OpenSSL / бен / OpenSSL

Но постоянно получалось сообщение об ошибке "Связывание только с кегами openssl означает, что вы можете в конечном итоге связываться с небезопасным" при попытке связать его

Так что я просто связал его, указав полный путь так

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

Теперь он показывает версию OpenSSL 1.0.2o, когда я делаю "openssl version -a", я предполагаю, что это сработало

Попробуйте mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C доморощенный

После этого попробуйте brew install homebrew / Portable-ruby / Portable-openssl

В OSX Big Sur у меня был очень неприятный опыт с ошибкой, потому что все решения основаны на использовании. Но бег brew install всегда возвращал ошибку вроде:

      Error: 
  homebrew-core is a shallow clone.
To `brew update`, first run:
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
This command may take a few minutes to run due to the large size of the repository.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!

Но я не мог запустить эту команду, потому что git не работал с:

      % git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/libexec/git-core/git-remote-https
  Reason: image not found

В конце концов, решение было переустановить git.

      brew reinstall git

А затем при необходимости обновите символические ссылки:

      brew link --overwrite git

Для тех, кто использует macOS Monterey и устанавливает последнюю версиюopenssl v3с brew он находится совершенно по другому пути:

      /opt/homebrew/Cellar/openssl@3/

Определенная версия установлена ​​в подпапке, а двоичный файл доступен по адресу (пример для версии 3.0.7):

      /opt/homebrew/Cellar/openssl@3/3.0.7/bin/openssl

С использованиемbrew link --force opensslпо-прежнему действителен для создания символических ссылок. Несмотря на то, что он создает символические ссылки, система openssl, установленная в /usr/bin/openssl, имеет предпочтение, поскольку она расположена выше в списке. Таким образом, решением будет установка локальной символической ссылки:

      ln -s /opt/homebrew/Cellar/openssl@3/3.0.7/bin/openssl /usr/local/bin/openssl

Это сохраняет 2 версии по разным путям, но /usr/local/bin имеет наивысший приоритет при поиске в$PATH. Недостатком является то, что вам нужно будет обновить символическую ссылку после обновления новой версии с помощью brew, потому что теперь каждая версия находится в отдельной подпапке.

  1. установить порт: https://guide.macports.org/
  2. установить или обновить пакет openssl: sudo port install openssl или же sudo port upgrade openssl
  3. все, беги openssl version чтобы увидеть результат.
Другие вопросы по тегам