PHP CURL - cURL错误35:错误:1414 D172:SSL例程:tls12_check_peer_sigalg:错误的签名类型

epfja78i  于 2022-11-13  发布在  PHP
关注(0)|答案(5)|浏览(427)

我想在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/4097OpenSSL v1.1.1 ssl_choose_client_version unsupported protocol的函数
我必须使用哪个curl选项来解决这个错误?
谢谢

uxh89sit

uxh89sit1#

我知道这个问题是相当古老的,但我遇到了同样的问题时,与一些旧的 * 咳嗽 * 爱马仕 * 考 * api。
我也不想将整个系统的seclevel设置为1。您要查找的内容如下:

curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'DEFAULT@SECLEVEL=1');

只要把这段代码放进你的应用程序,你就应该可以满足这个请求。当然这不是最安全的方法,但是当Api没有正确设置时,你就没有选择了。

xfyts7mz

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签名。

2o7dmzc5

2o7dmzc53#

升级Ubuntu 20后,我遇到了同样的问题。
解决方案是升级到openssl-1.1.1g。默认情况下,Ubuntu 20使用openssl-1.1.1f,但效果不佳。
link to an installation solution,用于此尚未打包的openssl版本。

ncecgwcz

ncecgwcz4#

简单地将DEFAULT@SECLEVEL设置为1并不起作用,因为我需要使用OpenSSL 1.1.1f 31 Mar 2020Ubuntu 20.04.3 LTS上修复这个问题。
您需要将以下内容添加到配置文件(/etc/ssl/openssl.cnf)的开头:

openssl_conf = default_conf

然后是这个结尾:

[ default_conf ]

ssl_conf = ssl_sect

[ssl_sect]

system_default = system_default_sect

[system_default_sect] MinProtocol = TLSv1.2 CipherString =
DEFAULT:@SECLEVEL=1
kmb7vmvb

kmb7vmvb5#

在安装Ubuntu 22.04后,我遇到了这个问题,并在

  • /etc/ssl/打开的ssl.cnf文件

已修复。零很重要。

相关问题