2

我最近升级到 OS X Mountain Lion,运行时curl-config --ca出现空行。卷曲的相关资料:

curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp     smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz 

问题是除非我更新证书,否则我无法运行brew update,因为我收到以下错误:

Initialized empty Git repository in /usr/local/.git/
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/mxcl/homebrew.git/info/refs
fatal: HTTP request failed
Error: Failure while executing: git fetch origin 

自制帮助论坛说我需要更新证书。但是,除非我能找到 curl 存储证书的位置,否则我无法更新它。

编辑: HeatfanJohn 提出的解决方案如下:

我刚刚注意到 curl-ca-bundle 有一个 Macport。很抱歉这个可能很简单的问题,但是您是安装 curl 还是预装了它?您可能需要考虑安装 MacPorts,然后使用 MacPorts 安装 curl-ca-bundle,尽管快速查看该 MacPort 的 Portfile 似乎只是将捆绑包放入 /usr/share 中,您也可以手动执行此操作。

从 MacPorts 安装的命令是port install curl. 从 MacPorts 安装可解决此问题。

4

1 回答 1

1

我主要curl在 Winodws 上运行,但从 curl 文档中,以下内容应该可以工作:

如果您使用 curl 命令行工具,您可以通过将环境变量 CURL_CA_BUNDLE 设置为您选择的路径来指定您自己的 CA 证书路径。

然后从http://curl.haxx.se/ca/cacert.pem下载最新.pem文件,并将其放在您在环境变量中指定的目录路径中。文档对于环境变量是指向文件还是目录有点含糊。我会尝试将其指向文件。.pemCURL_CA_BUNDLE

在 Windows 上,在可执行文件所在的同一目录中curl查找.pem文件作为文件。这也可能奏效。我家里有一台旧的 MAC。我将在今晚晚些时候对此进行测试。curl-ca-bundle.crtcurl

curl-config --ca为我返回/usr/share/curl/curl-ca-bundle.crt

我刚刚注意到curl-ca-bundle有一个 Macport 。很抱歉这个可能很简单的问题,但是您是安装 curl 还是预装了它?您可能需要考虑安装MacPorts,然后使用 MacPorts 安装 curl-ca-bundle,尽管快速查看该MacPort的Portfile 似乎只是将捆绑包放入 /usr/share 中,您也可以手动执行此操作。

curl从 Macports 安装,现在我安装了 7.27.0 版本,它被配置为使用最新的 curl-ca-bundle.crt 文件。见下文:

sams-mac:~ sam$ curl --version
curl 7.27.0 (powerpc-apple-darwin8.11.0) libcurl/7.27.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

sams-mac:~ sam$ curl-config --ca
/opt/local/share/curl/curl-ca-bundle.crt

sams-mac:~ sam$ ls -l /opt/local/bin/curl*
-rwxr-xr-x   1 root  admin  147012 Aug  3 11:00 /opt/local/bin/curl
-rwxr-xr-x   1 root  admin    4988 Aug  3 11:00 /opt/local/bin/curl-config
sams-mac:~ sam$ 
于 2012-08-01T19:37:11.833 回答