我想在PHP 7.3.90中创建curl请求
第一个
答案是
"cURL error 35: error:1414D172:SSL routines:tls12_check_peer_sigalg:wrong signature type (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)"
我在使用curl命令时也遇到了同样的问题,我使用
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1
而不是
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
https://github.com/curl/curl/issues/4097和OpenSSL v1.1.1 ssl_choose_client_version unsupported protocol的函数
我必须使用哪个curl选项来解决这个错误?
谢谢
5条答案
按热度按时间uxh89sit1#
我知道这个问题是相当古老的,但我遇到了同样的问题时,与一些旧的 * 咳嗽 * 爱马仕 * 考 * api。
我也不想将整个系统的seclevel设置为1。您要查找的内容如下:
只要把这段代码放进你的应用程序,你就应该可以满足这个请求。当然这不是最安全的方法,但是当Api没有正确设置时,你就没有选择了。
xfyts7mz2#
我只是在Debian上从OpenSSL 1.1.0升级到1.1.1后遇到了这个问题。
我在这里找到了解决方案https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900984
在
/etc/ssl/openssl.cnf
中用SECLEVEL 1
替换SECLEVEL 2
,因为SECLEVEL 2
阻止了SHA1加密,在我的例子中,这是Moneris所必需的,它似乎只支持废弃的SHA1签名。2o7dmzc53#
升级Ubuntu 20后,我遇到了同样的问题。
解决方案是升级到openssl-1.1.1g。默认情况下,Ubuntu 20使用openssl-1.1.1f,但效果不佳。
link to an installation solution,用于此尚未打包的openssl版本。
ncecgwcz4#
简单地将
DEFAULT@SECLEVEL
设置为1
并不起作用,因为我需要使用OpenSSL 1.1.1f 31 Mar 2020
在Ubuntu 20.04.3 LTS
上修复这个问题。您需要将以下内容添加到配置文件(
/etc/ssl/openssl.cnf
)的开头:然后是这个结尾:
kmb7vmvb5#
在安装Ubuntu 22.04后,我遇到了这个问题,并在
已修复。零很重要。