3

当我尝试部署到 aws 时出现此错误。事实证明,这是我机器上的一个问题,其他人没有遇到过。

jkazil@jlk:~/Projects/code/geoq-chef-repo [git master] $ vagrant up --provider=aws
Bringing machine 'default' up with 'aws' provider...
[default] Box 'ubuntu_aws' was not found. Fetching box from specified URL for
the provider 'aws'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading or copying the box...
An error occurred while executing multiple actions in parallel.
Any errors that occurred are shown below.

An error occurred while executing the action on the 'default'
machine. Please handle this error then try again:

An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
jlk:~/Projects/code/geoq-chef-repo [git master] $

我在互联网上发现了一些东西说我应该看看我的 openssl 版本。起初,它是 0.9.8,但我在自制软件中有 1.0.1f。所以我发现了这个:Update OpenSSL on OS X with Homebrew并遵循它。而且我能够更新 OpenSSL。

jkazil@jlk:~/Projects/code/geoq-chef-repo [git master] $ openssl version
OpenSSL 1.0.1f 6 Jan 2014
jlk:~/Projects/code/geoq-chef-repo [git master] $

但这并没有解决问题。只是为了澄清一下,这不是 aws 问题,而是我的问题。这是我试图在本地拉下一台机器。我正在使用不安全的标志来尝试推动它通过,但无论有没有它都不起作用。

jkazil@jlk:~/Projects/code/geoq-chef-repo [git master] $ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box --insecure
Downloading or copying the box...
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
jlk:~/Projects/code/geoq-chef-repo [git master] $

最后,我想分享我的 PATH,以防万一有人有这个问题。

jlk:~/Projects/code/geoq-chef-repo [git master] $ echo $PATH
/usr/local/Cellar/ruby/2.0.0-p247/bin:/Users/jkazil/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
jlk:~/Projects/code/geoq-chef-repo [git master] $

有什么建议么?

4

3 回答 3

2

这将是一个悲伤的答案,但解决方案是更新到 10.9。然后问题就消失了。我知道这不是人们想要的答案,但我想我会在头撞墙一段时间后尝试一下。

谢谢你们每一个人的帮助!PS VAGRANT_LOG=info 也有助于设置。

于 2014-03-31T16:05:43.313 回答
1

此错误的一个原因可能是旧版本的 OpenSSL 尝试连接到使用 HTTPS 和 SNI 的服务器:

http://sourceforge.net/p/curl/bugs/1037/?limit=10&page=1#aa7f

尝试将日志级别设置得更高(例如VAGRANT_LOG=debug vagrant up——参见Vagrant 调试指南)以查看有问题的 URL,并使用 curl 手动测试它以确认失败。

于 2014-03-24T22:55:15.223 回答
1

我在互联网上发现了一些东西说我应该看看我的 openssl 版本。起初,它是 0.9.8,但我在自制软件中有 1.0.1f。所以我发现了这个:OpenSSL Version MacOSX Homebrew 并遵循它。而且我能够更新 OpenSSL。

Mac OS X 将尽其所能加载 0.9.8 /usr/lib

$ find /usr/ -iname libssl*
/usr//lib/libssl.0.9.7.dylib
/usr//lib/libssl.0.9.8.dylib
/usr//lib/libssl.dylib

您需要确保正在加载预期版本的 OpenSSL。如果您可以在 下获得它gdb,请发出info shared并查看实际加载的 OpenSSL 版本。

关于 OS X 及其链接器的一些事情:(1)它忽略了rpath's; (2) 它忽略像这样的请求-Bstatic;(3) 更一般地说,如果可用,它总是链接到共享对象(即使在 iOS 上,您唯一应该使用的是存档);(4)LD_PRELOAD不兑现。

使用DYLD_LIBRARY_PATH.

如果您不能让 OS X 使用 1.0.1f,那么您将不得不重新构建有问题的组件。但是-L/usr/local/ssl -lssl -lcrypto,您需要省略标志并指定完整存档,而不是指定/usr/local/ssl/lib/libssl.a(不带-l)。

不要相信你不必在 OS X 上做这些事情的说法(比如“使用-L并且-lssl因为那是你想用的东西”之类的说法)。我多年来一直在使用 Apple 的设备,我确信它不起作用(而且提出索赔的人显然不使用 OS X)。OS X 有时是一个真正的混蛋。

于 2014-03-22T01:58:46.393 回答