Curl 使用证书、密钥和CAcertificate调用REST API https

Curl 使用证书、密钥和CAcertificate调用REST API https,curl,https,openssl,Curl,Https,Openssl,我需要使用SSL身份验证调用支付解决方案提供商RESTAPI端点 提供商向我提供以下文件: 商品卡 根癌 client.crt client.key client.pfx 口令 API文档为rootCA.crt指出,这是签署证书提供商服务器用于在连接到商家时进行身份验证的证书颁发机构 而merchantCA.crt是签署商户证书的证书颁发机构 这是我的卷发电话: curl--cacert rootCA.crt--cert client.crt:passphrase--key client.k

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

提供商向我提供以下文件:

  • 商品卡
  • 根癌
  • client.crt
  • client.key
  • client.pfx
  • 口令
API文档为rootCA.crt指出,这是签署证书提供商服务器用于在连接到商家时进行身份验证的证书颁发机构

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

这是我的卷发电话:

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)无法加载PEM客户端证书,OpenSSL错误:140AB18E:SSL例程:SSL\u CTX\u使用\u证书:ca md太弱,(找不到密钥、密码短语错误或文件格式错误?


不知道发生了什么。

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

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

因此,通过使用较旧的OpenSSL客户端,它将接受MD5哈希证书

您可以在中找到旧的OpenVPN版本 对于Windows,接受MD5的最新版本是
openvpn-install-2.4.3-I602.exe
。 当您安装该软件时,它将安装到
C:\ProgramFiles\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证书,因为它具有弱签名

有关MD5证书的更多信息:

这将告诉您可以使用MD5:(使用gitbash)检查证书是否经过哈希处理


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

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

因此,通过使用较旧的OpenSSL客户端,它将接受MD5哈希证书

您可以在中找到旧的OpenVPN版本 对于Windows,接受MD5的最新版本是
openvpn-install-2.4.3-I602.exe
。 当您安装该软件时,它将安装到
C:\ProgramFiles\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证书,因为它具有弱签名

有关MD5证书的更多信息:

这将告诉您可以使用MD5:(使用gitbash)检查证书是否经过哈希处理