强制PHP使用TLS 1.0而不是SSL

时间:2015-01-01 13:34:00

标签: php ssl

美好的一天。 我在使用信用卡付款的网站上使用支付网关,银行网关向其所有客户发送它将从1月3日开始停止所有SSL连接,因此我必须确保做正确的事情没有测试。

实际上我在进行连接之前就已经使用了这个配置:

<?php
curl_setopt($curl_handle, CURLOPT_URL,$to_url); 
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $data);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
?>

由于调试需要,它被设置为false。

curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);

所以,我已经读到了添加:

CURLOPT_SSLVERSION => 1

应该强制使用TLS,这是真的吗? 添加此选项是否会阻止网关忽略我的请求? 它需要其他一些选择吗?

1 个答案:

答案 0 :(得分:0)

如果您没有指定经常发生的TLS版本,则可能会遇到连接问题。

您需要以下选项:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($ch, CURLOPT_CAINFO, 'cacert.crt');
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, $array_ciphers);

这样,您将获得最大的前瞻性保密。

您可以随时删除任何上述参数,但在此之前,请务必阅读上述detailed explanation函数。 之后你可以决定你想做什么。

如果您有任何疑问,请与我们联系。

相关问题