5

ソリューション

ブルーノの投稿を使って解決策を見つけましたが、もっと具体的にする必要があると感じたので、これは明らかに私がしたことです。

  1. cacert.pemを私の〜/ .sshディレクトリにダウンロードしました(これがどこに行くべきかわかりませんが、解決策を見つけようとしているときに誰かが同じようなことをするのを見たので、ここに置きます)。
  2. インストール用にenvvarCURL_CA_BUNDLEを設定します。これは実際には、失敗によって提案されたWebサイトのソリューション番号4です。私は彼らが言っていることを誤解しました(簡単な例は私に何時間もの混乱を救ったかもしれません)。とにかく、.pemファイルへのフルパスを指定する必要があります。そうすれば、このようにインストールできます。そして、それがインストールされます。$ CURL_CA_BUNDLE=~/.ssh/cacert.pem ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

元の質問

どうすればいいですか

  1. 自作をインストールする、または
  2. 自作をインストールできるようにSSLでcurlをインストールしますか?

私はMacOSXLeopardを使用しています。

自作をインストールしようとしていますが、次のエラーが発生します:

$ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/Formula/...
/usr/local/Library/Homebrew/...
==> The following directories will be made group writable:
/usr/local/bin
/usr/local/lib
/usr/local/lib/pkgconfig
/usr/local/share/man/man1
/usr/local/share/man/man3

Press enter to continue
==> /usr/bin/sudo /bin/chmod g+w /usr/local/bin /usr/local/lib /usr/local/lib/pkgconfig /usr/local/share/man/man1 /usr/local/share/man/man3
==> Downloading and Installing Homebrew...
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

gzip: stdin: unexpected end of file
/usr/bin/tar: Child returned status 1
/usr/bin/tar: Error exit delayed from previous errors
Failed during: /bin/bash -o pipefail -c '/usr/bin/curl -sSfL https://github.com/mxcl/homebrew/tarball/master | /usr/bin/tar xz -m --strip 1'

macportsでcurlをインストールして+sslを指定しようとしましたが、うまくいきませんでした(申し訳ありませんが、エラーが何であったか覚えていません。その時点までに約1時間かかったので、やりたくありません。もう一度)。macportsからcurlをアンインストールしてから実行する$ whereis curlと、何も見つかりません。

だから私は上記のエラーメッセージで提案されたサイトに行きます。ほとんどのオプションは適用できないようですが、オプション5はある程度意味があります。

より良い/異なる/新しいCA証明書バンドルを入手してください!1つのオプションは、curlビルドツリールートで「makeca-bundle」を実行して、最近のFirefoxブラウザが使用するものを抽出することです。

だから私はcurlソースコードを取得して、、、、、そして最後に$ ./buildconf$ ./configure実行し$ makeます。チェックすると「/usr/ bin/curl」と表示されます。$ make ca-bundle$ sudo make install$ whereis curl

しかし、(新しいターミナルウィンドウで)homebrew installコマンドを再度実行すると、上記と同じエラーが発生します。

4

4 に答える 4

6

cURLを再コンパイルする必要はありません。すでにSSL/TLSをサポートしています。再コンパイルしないと、が表示されませんerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

必要なのは、通信しようとしているサーバーのサーバー証明書などのCA証明書のバンドルが、それらのCAの1つによって発行されていることです。

http://curl.haxx.se/docs/caextract.htmlへのリンクからリンクするcURLページ

結合されたPEMバンドルをダウンロードして使用できるはずです。curl -fsSL --cacert /path/to/bundle.pem https://...上記のコマンドで使用するかexport CURL_CA_BUNDLE=/path/to/bundle.pem、コマンドを実行する前に使用することができます。

通常、このバンドルの内容を信頼する方法が必要ですが、商用CAのインポートに関しては、常に「信頼の飛躍」の要素があります(ほとんどのブラウザーにバンドルされているのと同じ方法です)。

于 2011-07-03T22:14:07.307 に答える
0

どういうわけか、元のポスターの解決策は私にはうまくいきませんでした。新しいCAバンドルを使用しても、インストール中にSSLエラーが発生しました。

失敗:/ bin / bash -o pipefail -c'/ usr / bin / curl -sSfL https://github.com/mxcl/homebrew/tarball/master | / usr / bin / tar xz -m --strip 1 '

そのため、インストールスクリプトを直接実行する代わりに、最初にダウンロードし、次に-kスイッチ(または--insecure)をそのcurlコマンド(今日のバージョンの126行目にあります)に追加してから、パッチを適用したインストールスクリプトを実行しました。

まず、この方法を使用して、とにかくカールバンドルを更新しますがcurl、持っていない場合に備えてwget

cd /usr/share/curl/
sudo curl http://curl.haxx.se/ca/cacert.pem -o cacert.pem
sudo mv curl-ca-bundle.crt old.curl-ca-bundle.crt
sudo mv cacert.pem curl-ca-bundle.crt

次に、https://github.com/mxcl/homebrew/wiki/installationにアクセスし、インストーラースクリプトのリンクをコピーします。

インストーラースクリプトを取得する:(URLを現在のインストーラースクリプトのURLに置き換えます)

curl -fsSL https://raw.github.com/gist/323731 -o homebrew-install.rb

homebrew-install.rbを編集します:「curl」を検索し、-kスイッチを追加します

最後に、パッチを適用したスクリプトを実行します。

ruby homebrew-install.rb
于 2011-08-20T13:23:51.810 に答える
0

OS X 10.9では、元の指示で問題なく動作します。
最初にXQuartzをダウンロードしてインストールします

なぜ〜/ .sshに何かを配置する必要があるのか​​わかりませんが、大丈夫です

システム環境設定
共有
「チェック」リモートログイン
「クリック」+でユーザー名を追加
し、xquartzタイプで
ssh localhost answer yes to all type exit

pemファイルをダウンロード してxquartzタイプの
ダウンロードに保存します

cd

cp Downloads/cacert.pem .ssh/cacert.pem

pemファイルは、次のものをエクスポートする必要があることを文句を言いませんでした。

CURL_CA_BUNDLE=~/.ssh/cacert.pem

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

コマンドラインユーティリティをインストールしていない場合は、インストールするように求められます。
[OK]をクリックし、プロンプトに従い
ます。パスワードの種類を慎重に入力するプロンプトが1つ表示され、Enterキーを押します。

brew doctor
brew update
brew doctor
brew search ssl
brew install openssl

「私はフロントエンドのUXDタイプの人です。DL2.09GBxcode.appを使用する必要がないことに喜んで驚いています。」

于 2013-11-16T19:10:08.130 に答える
0

ruby -e "$(curl -k -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"は、-kが安全でないSSL接続を許可するために機能します

于 2014-01-18T19:12:17.317 に答える