Passing client certificates through Curl request using Guzzle(使用GUZLE通过Curl请求传递客户端证书)
                            本文介绍了使用GUZLE通过Curl请求传递客户端证书的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我有以下cURL命令
sudo curl -E openyes.crt.pem --key openyes.key.pem https://sky.myapitutorial.in:444/app/live/get
这样就可以了。但当我试图从狂饮中做到这一点时,它失败了。
我无法传递请求中的客户端证书。
这就是我尝试的
$headers = ['Content-Type' => 'application/json','X-Client-Id' => config('mykey') , 'X-Client-Secret' => config('mykey')];
        $client = new client();
        try {
            $response = $client->post(
                $endpoint
                , 
                ['json' => $content, 'headers' => $headers,['connect_timeout' => 650]],
                [
                    'config' => [
                        'curl' => [
                            'CURLOPT_SSLKEY' => base_path().'/openyes.key.pem',
                            'CURLOPT_SSLCERT' => base_path().'/openyes.crt.pem',
                            'CURLOPT_VERBOSE' => true
                        ],
                    ]
                ],
                ['debug'=>true],
                ['http_errors' => false]
            );
            dd($response);
        }
        catch (GuzzleHttpExceptionClientException $e) {
            $response = $e->getResponse();
            throw $e;
        }
我在GUZLE文档中找不到任何解决方案。
您知道这为什么不起作用吗?
我收到的错误是
cURL error 35: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
推荐答案
可以使用ssl_key和cert:
$response = $client->post(
    $endpoint, [
        'json' => $content,
        'headers' => $headers,
        'connect_timeout' => 650,
        // add these
        'cert' => '/path/to/openyes.crt.pem',
        'ssl_key' => '/path/to/openyes.key.pem'
    ]
);
如果他们有密码短语,您可以这样设置他们:
        'cert' => ['/path/to/openyes.crt.pem', 'password'],
        'ssl_key' => ['/path/to/openyes.key.pem', 'password']
                        这篇关于使用GUZLE通过Curl请求传递客户端证书的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 织梦狗教程
				
			本文标题为:使用GUZLE通过Curl请求传递客户端证书
				
        
 
            
        基础教程推荐
             猜你喜欢
        
	     - YouTube API v3 点赞视频,但计数器不增加 2022-01-01
 - 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
 - PHP 类:全局变量作为类中的属性 2021-01-01
 - 如何在 Laravel 中使用 React Router? 2022-01-01
 - 如何替换eregi() 2022-01-01
 - PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
 - 学说 dbal querybuilder 作为准备好的语句 2022-01-01
 - Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
 - 在PHP中根据W3C规范Unicode 2022-01-01
 - 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
				
				
				
				