Mac OS X Yosemite 和客户端 SSL 证书

Mac OS X Yosemite 和客户端 SSL 证书

自从我从 Mavericks 升级到 Yosemite 后,我的 SSL 客户端证书在某些地方就停止工作了。它们在 Web 浏览器和 中仍然可以工作,但在和 Python库中wget已停止工作。curlrequests

这有效:

$ wget https://localhost --certificate cert.pem --private-key private.pem

这不起作用:

$ curl https://localhost --cert cert.pem --key private.pem
curl: (58) SSL: Can't load the certificate "cert.pem" and its private key: OSStatus -25299

但是如果我将 pem 组合成 p12,它就可以起作用:

$ curl https://localhost --cert cert.p12:password

但是 Python 不支持 p12s,所以这不起作用:

import requests
print requests.get("https://localhost", cert=("cert.pem","private.pem")).content

它没有抱怨,但它也没有发送客户端证书。

答案1

简短回答:新版本的 CURL 现在使用 Apple 的安全传输 API 而不是 OpenSSL API,您需要使用 P12 格式的证书。

请参阅此处的文章:http://curl.haxx.se/mail/archive-2013-10/0036.html

相关内容