curl - 为什么authorize.net 使用的证书是由不在众所周知的curl.haxx.se/ca/cacert.pem 列表中的CA 签名的?

标签 curl ssl-certificate authorize.net

与authorize.net进行交易的URL是https://secure.authorize.net/gateway/transact.dll 。如果我们访问此 URL 并检查证书,我们可以看到它是由中间证书签署的, CN = Entrust Certification Authority - L1E ,有效期至 2019 年 12 月 10 日 17:25:43。但是,如果您访问 Entrust 网站 https://validev.entrust.net/ ,您会看到他们具有相同 CN 的中间证书有效期至 2021 年 11 月 11 日 23:00:59 - 所以它是更新的版本。这两个中间证书不共享相同的根证书。就我而言,出现问题是因为众所周知的列表 http://curl.haxx.se/ca/cacert.pem我的配置设置中 CURL 使用的不包含先前版本证书的根证书。它仅包含新版本的根证书。当我在文件中手动添加旧版本的根证书时,问题解决了。但是,我想了解到底出了什么问题。该列表是否应该包含两个版本的根证书? Authorize.net 是否应该更新其证书,以便与更新的 CA bundle 匹配?

最佳答案

更新:这不再是必要的,因为 Authorize.net has updated its production servers' certificates .

您可能会发现它突然停止工作,因为 Ubuntu ca-certificates 软件包在最近的更新中刚刚放弃了对它们的支持:

http://changelogs.ubuntu.com/changelogs/pool/main/c/ca-certificates/ca-certificates_20141019ubuntu0.12.04.1/changelog

http://changelogs.ubuntu.com/changelogs/pool/main/c/ca-certificates/ca-certificates_20141019ubuntu0.14.04.1/changelog

前几天,我和我的同事在一位客户那里遇到了这种情况——他们的捐赠突然停止了。

真正的解决方案是 Authorize.net 需要更新他们的证书。不过,与此同时,您可以只添加一个缺少的证书。我在这里整理了有关如何在 Ubuntu 中执行此操作的注释:

https://aghstrategies.com/content/SSL3_GET_SERVER_CERTIFICATE

我还在 https://github.com/agh1/ca-certificate-for-authorize.net 藏匿了一个根证书(尽管可能不安全)

再次,我希望这只是一个短期解决方案,直到他们获得新证书为止,但这将是一个很好的权宜之计。

关于curl - 为什么authorize.net 使用的证书是由不在众所周知的curl.haxx.se/ca/cacert.pem 列表中的CA 签名的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103613/

相关文章:

ajax - Grails Spring 安全插件 AJAX 身份验证

c - 使用 Curl 在 DLL 中程序退出之前的 HTTP 连接

payment-gateway - 沙盒中的 Authorize.net 信用卡收费在响应中返回 refTransID 为空

php - 仅通过 curl 在 php 中检索 header

java - 使用带有证书路径(证书链)的 bouncycaSTLe 创建 x.509 证书

ios - 即使在 iphone 设备上安装根证书后,Charles 代理也不起作用

.htaccess - 以编程方式在 MAMP Pro 上针对特定页面强制使用 https(不是站点范围且不使用 .htaccess)

paypal - Authorize.net、Paypal 或 Google Checkout,我应该选择哪一个?

java - E00011 - 访问被拒绝。您无权调用交易详情 API。 - 在 Aithorize.net

javascript - curl :如何修复 "Please turn JavaScript on and reload the page"