Mountain Lion升级后,卷曲的SSL证书消失

时间:2012-08-01 19:10:36

标签: homebrew osx-mountain-lion

我最近升级到OS X Mountain Lion,当我运行curl-config --ca时,我得到一个空行。有关curl的详细信息:

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,虽然快速查看Portfile,但MacPort似乎只是将捆绑包放入/ usr / share,您也可以手动执行。

从MacPorts安装的命令是port install curl。从MacPorts安装解决了这个问题。

1 个答案:

答案 0 :(得分:1)

我主要在Winodws上运行curl,但是从curl文档中可以看到以下内容:

  

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

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

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

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

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

我从Macports安装了curl,现在安装了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$