php – 在亚马逊AWS上使用TLS v1.2 for Curl

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在亚马逊AWS上使用TLS v1.2 for Curl脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在下面使用这个 PHP函数来使用curl来联系外部API

function api_post($url,$data = array()) {

global $api_key;
global $password;

$data = json_encode($data);

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);
curl_setopt($ch,CURLOPT_SSLVERSION,6);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,CURLOPT_MAXredIRS,1);
curl_setopt($ch,CURLOPT_RETURNtransfer,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
    'Content-type: application/json','Accept: application/json'
));

curl_setopt($ch,CURLOPT_USERPWD,$api_key . ':' . $password);

curl_setopt($ch,CURLOPT_POST,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($ch,CURLOPT_TIMEOUT,30);

$response = curl_exec($ch);

return $response;   
}

我正在与之通信的api即将坚持使用tls v1.2这是一件好事,除了某些原因我的代码使用的是1.0版本.

如果我从本地服务器但在生产服务器(AWS Elastic beanstalk上的amazon Web Services EC2实例)上执行此操作则不错.我想这与我的服务器设置有关,但我不知道是什么或如何解决它.

这是我的PHPinfo的curl部分.也许我需要升级它或什么?但是我该怎么做呢?

php – 在亚马逊AWS上使用TLS v1.2 for Curl

解决方法

要在curl上强制执行TLS版本,您可能需要使用

bool curl_setopt ( resource $ch,int $option,mixed $value )

如此处所述:http://php.net/manual/en/function.curl-setopt.php

TLS v1.2的示例

curl_setopt ($SETUPloginurl,6);

CURLOPT_SSLVERSION:CURL_SSLVERSION_DEFAULT(0),CURL_SSLVERSION_TLSv1(1),CURL_SSLVERSION_SSLv2(2),CURL_SSLVERSION_SSLv3(3),CURL_SSLVERSION_TLSv1_0(4),CURL_SSLVERSION_TLSv1_1(5)或CURL_SSLVERSION_TLSv1_2(6)之一.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在亚马逊AWS上使用TLS v1.2 for Curl全部内容,希望文章能够帮你解决php – 在亚马逊AWS上使用TLS v1.2 for Curl所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。