【问题标题】:Call REST API https with certificate, key and CAcertificate使用证书、密钥和 CAcertificate 调用 REST API https
【发布时间】:2019-07-30 12:47:59
【问题描述】:

我需要使用 SSL 身份验证调用支付解决方案提供商 REST API 端点。

供应商给了我这些文件:

  • merchantCA.crt
  • rootCA.crt
  • client.crt
  • client.key
  • client.pfx
  • 密码短语

API 文档说明 rootCA.crt 是证书颁发机构,它签署了证书提供商服务器在连接到商家时用来进行身份验证的证书。

merchantCA.crt 是签署商家证书的证书颁发机构

这是我的 CURL 调用:

curl --cacert rootCA.crt --cert client.crt:passphrase --key client.key -X GET -H 'Content-Type: application/json' "https://provider_website/api/desired_endpoint"

但是我收到了这个错误

curl: (58) could not load PEM client certificate, OpenSSL error error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak, (no key found, wrong pass phrase, or wrong file format?)

不知道发生了什么。

【问题讨论】:

    标签: curl https openssl


    【解决方案1】:

    我刚刚在使用 OpenSSL 的 OpenVPN 客户端上遇到了类似的问题(就像您的 curl 一样)。 问题可能是您的 OpenSSL 客户端太新。您需要一个较旧的 OpenSSL 客户端。

    您较新的 OpenSSL 客户端不接受 SSL 服务器正在使用 md5 散列证书。它要求使用 SHA256 对服务器证书进行哈希处理。

    因此,通过获取较旧的 OpenSSL 客户端,它将接受 MD5 散列证书。

    您可以在https://build.openvpn.net/downloads/releases/ 找到旧的 OpenVPN 版本 对于 Windows,接受 MD5 的最新版本是 openvpn-install-2.4.3-I602.exe。 当您安装它时,它将安装到C:\Program Files\OpenVPN\bin。在那里你会找到一个有效的openssl.exe。 这是它打印给我的版本:

    > openssl version
    # OpenSSL 1.0.2l  25 May 2017
    

    如果你喜欢的话,你可以直接去 OpenSSL somwhere 获取它。

    OpenVPN 也有适用于 Linux 和 Mac 的版本。也许这也是这些平台的 2.4.3 版本编号。

    另一种选择是您的支付提供商安装由 SHA256 创建的证书(并向您提供新证书)。显然 MD5 证书不再安全...

    引用:

    OpenSSL 版本升级到 1.1,我无法连接到我的 R7000 来自外部的路由器,因为出于安全原因 OpenSSL v.1.1 不接受 MD5 证书,因为签名较弱。

    来自https://community.netgear.com/t5/Nighthawk-WiFi-Routers/Netgear-R7000-and-OpenVPN-for-Android-App/td-p/1310857

    有关 MD5 证书的更多信息:https://openvpn.net/vpn-server-resources/faq-regarding-openvpn-connect-ios/#md5-signature-algorithm-support

    这将告诉您可以检查证书是否使用 MD5 进行哈希处理:(使用 Git Bash)

     ../bin/openssl x509 -in rootCA.crt -noout -text | grep "Signature Algorithm"
    #    Signature Algorithm: md5WithRSAEncryption
    

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 1970-01-01
      • 2019-11-14
      • 2011-01-04
      • 2019-02-15
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多