87

我正在使用 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。

4

10 回答 10

92

如果您正在使用 Homebrew /usr/local/bin应该已经位于$PATH或至少位于/usr/bin之前。如果您现在brew link --force openssl在终端窗口中运行,请打开一个新窗口并which openssl在其中运行。它现在应该显示openssl/usr/local/bin下。

于 2013-06-21T09:23:39.777 回答
14

用brew在mac上安装了openssl,但/usr/local/bin在其他brew安装的bin所在的位置没有找到。在这里找到我新鲜的 openssl:

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

像这样运行它:

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

我不想更新 OS X openssl,而某些操作系统的东西或其他 3rd 方应用程序可能依赖于旧版本。

我也不介意更长的路openssl

在这里为所有正在寻找 brew 安装的 openssl 位置的 Google 员工写这篇文章。

于 2016-11-12T21:48:11.993 回答
12

在终端中,运行:

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

如果收到警告,您可能必须先取消链接 openssl:brew unlink openssl

这可以确保我们为这种情况链接正确的 openssl。(并且不会与 .profile 混淆)

向@Olaf 的回答和@Felipe 的评论致敬。有些人——比如我自己——可能有一些非常混乱的 PATH 变量。

于 2015-03-26T15:17:07.277 回答
7

我遇到了这个问题,发现新版本的安装openssl确实有效,但我PATH的设置不正确——我$PATH的 brew 路径之前放置了端口路径,所以它总是找到旧版本的openssl.

brew对我来说,解决方法是将(/usr/local/bin)的路径放在我的$PATH.

要找出您从哪里加载openssl,请运行which openssl并记下输出。它将是您运行时系统使用的版本的位置opensslbrew它将位于“/usr/local/bin”路径之外的某个位置。更改您的$PATH,关闭该终端选项卡并打开一个新选项卡,然后运行which openssl​​. 您现在应该看到不同的路径,可能在 /usr/local/bin 下。现在运行openssl version,您应该会看到您安装的新版本“OpenSSL 1.0.1e 2013 年 2 月 11 日”。

于 2013-03-18T18:41:51.857 回答
5

为了回答您有关更新 openssl 的问题,我按照以下步骤成功将我的 Mac 上找到的版本更新到最新的 openssl 版本 1.0.1e。

我按照此处找到的步骤操作:http: //foodpicky.com/?p=99

当您到达终端命令makemake install的步骤时,请务必使用sudo makesudo make install(我必须一步一步完成两次,因为我没有 sudo 并且没有更新)。

希望这可以帮助

于 2013-03-05T21:00:22.423 回答
3

我在 OSX10.11 上运行 php56 的本地服务器上安装一些 Wordpress 插件时遇到问题。他们通过 SSL 连接外部 API 失败。

安装 openSSL 并没有解决我的问题。但后来我发现 CURL 也需要重新安装。

这解决了我使用 Homebrew 的问题。

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

brew uninstall php56 && brew install php56 --with-homebrew-curl --with-openssl
于 2016-03-09T22:00:25.790 回答
2

在 mac OS X Yosemite 上,使用 brew 安装后,将其放入

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

但是在尝试链接时不断收到错误“链接仅桶装 openssl 意味着您最终可能会链接到不安全的链接”

所以我只是通过像这样提供完整路径来链接它

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

所以现在当我做

$ openssl version -a

它显示版本 OpenSSL 1.0.2o。

所以我想它奏效了!

于 2018-07-07T03:32:53.403 回答
0

尝试:

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

之后尝试:

brew install homebrew/portable-ruby/portable-openssl
于 2021-05-29T07:36:27.090 回答
0

在 OSX Big Sur 上,我有一个非常令人沮丧的错误经历,因为所有解决方案都依赖于使用brew install. 但是运行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
于 2021-08-30T20:13:11.130 回答
-8
  1. 安装端口:https://guide.macports.org/
  2. 安装或升级 openssl 包:sudo port install opensslsudo port upgrade openssl
  3. 就是这样,运行openssl version看看结果。
于 2016-10-13T13:05:09.317 回答