我希望 curl 与 goDaddy 签名的网站一起工作:如果我打电话
curl mypage.com/bla
我收到证书验证错误。我尝试使用此代码段获取 ca 证书:
echo | openssl s_client -connect mysite.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cert.pem
然后打电话
curl mypage.com/bla --cacert cert.pem
这也导致了验证错误。我检查了证书日期和主题,一切似乎都很好?
我错过了什么?我可能需要整个链条吗?如果是,是否有命令可以全部获取?
根据文档:
如果此HTTPS服务器使用捆绑包中表示的CA签名的证书,则证书验证可能由于证书问题而失败(证书可能已过期,或者名称可能与 URL 中的域名不匹配)。如果您想关闭 curl 对证书的验证,请使用该
-k (or --insecure)
选项。对于 goDaddy,您必须使用SSL 证书和 CA Bundle (
gd_bundle.crt
)。您可以从https://certs.godaddy.com/repository/gd_bundle.crt下载例如。
cacert 中的 CA 表示证书颁发机构。您应该指定签署您的证书的机构的证书或证书路径,而不是您的证书本身
命令
应该列出一个发行人行。您应该获得颁发者证书并将其包含在 cacert pem 文件中
(在您的情况下搜索 Godaddy 证书链会导致https://certs.godaddy.com/repository)