【问题标题】:Https api access issuesHttps api 访问问题
【发布时间】:2021-10-11 04:14:31
【问题描述】:

下午好,亲爱的社区! 我向有相关经验的人寻求帮助。 我正在向https://ssl.croinform.ru:450 发出 API 请求。例如,身份验证请求: curl -k POST https://ssl.croinform.ru:450/api.test?Type=Login&Login=testUser&Password=testPassword 但我收到错误消息。错误文本因运行 curl 命令的环境而异。 在 Windows 上,我在 git bash(curl 版本 7.77.0)和 Cygwin64(curl 版本 7.78.0)中进行实验,得到相同的错误:curl: (35) error: 14094410: SSL routines: ssl3_read_bytes: sslv3 alert handshake failure。 В CentOS7 (curl 版本 7.78.0): curl: (6) 无法解析主机: POST curl:(35)无法与对等方安全通信:没有通用加密算法。

该服务提供需要在您的操作系统上安装的证书:cacer.p7b、ssl.croinform.cer。按照服务文档中的建议,在 Windows 上,我将它们安装在受信任的根证书颁发机构中。 CentOS7 没有支持建议,但我将证书放在 /etc/pki/ca-trust/source/anchors/ 并运行 update-ca-trust enable 和 update-ca-trust extract 命令。这些操作并不能解决问题。

请告诉我我做错了什么。 提前致谢!

【问题讨论】:

    标签: bash api ssl curl https


    【解决方案1】:

    您的错误表明要使用的协议是 SSL 版本 3,并且握手未能同意使用此协议与 SSL 进行通信。

    另外,现在可能不支持此功能,最新的 TLS 版本是 TLS 1.1 和 1.2

    例如,您可以尝试不同的协议版本,

    curl --tlsv1.2

    要使用 tls 1.2,但也请查看其他协议的文档。

    如果这是一个测试,您可以使用 curl -k 参数允许不安全的连接

    【讨论】:

    • Shaqil,非常感谢您的建议!我尝试了以下方法: curl --tlsv1.1 POST ssl.croinform.ru:450/… 以及--tlsv1.1 和-k(代替--tlsv1.1)。不幸的是同样的错误: curl --tlsv1.1 POST ssl.croinform.ru:450/api.test?Type=Login
    • 现在我做了一些不同的事情: cat cacer.p7b >> certRepo cat ssl.croinform.cer >> certRepo 现在我在请求中传递 certRepo。我还在 CentOs 中为请求添加了 --connect-to - 这消除了错误:无法解析主机:POST curl。现在请求看起来像这样: curl curl --cacert certRepo --connect-to POST ssl.croinform.ru:450/… windows 和 CentOs 中的错误是这样的: curl: (77) errorconfigure certificate, checks location: CAfile: certRepo CApath:没有
    • 包 ca-certificates 它已安装。简单地说,这个包建议在出现我上面写的错误时安装它。
    猜你喜欢
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多