php – 验证curl是否使用TLS

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 验证curl是否使用TLS脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的 PHP应用程序中,我使用 PHP的CURL和oPEnssl,使用SOAP进行连接和通话.
到目前为止,远程服务器支持SSL和TLS,但由于“poodle”错误,管理员决定禁用SSL并仅使用TLS.
支持SSL到1月底.

我通过添加更改了我的代码

curl_setopt($objCurl,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1_2);

理论上应该强制卷曲使用TLSv1.2.

但是这是理论 – 我需要验证它实际使用TLS – 是否有任何方法
一个方法叫curl_getinfo(),但是它返回的信息对我来说没有用:

[url] => https://www.example.COM/soap/MessagingPort
[content_type] => text/XMl;charset=utf-8
[http_code] => 200
[header_size] => 293
[request_size] => 882
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.164487
[namelookup_time] => 3.4E-5
[connect_time] => 3.4E-5
[PRetransfer_time] => 0.000122
[size_upload] => 604
[size_download] => 178
[speed_download] => 1082
[speed_upload] => 3672
[download_content_length] => 178
[upload_content_length] => 604
[starttransfer_time] => 0.164477
[redirect_time] => 0

大大提前谢谢

简答

请求卷曲到https://www.howsmyssl.com/

<?PHP 
$ch = curl_init('https://www.howsmyssl.com/a/check');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$data = curl_exec($ch);
curl_close($ch);

$JSON = json_decode($data);
echo $json->tls_version;

应该输出用于连接的TLS版本.

挖掘更深

Curl依赖于底层OpenSSL(或NSS)库来进行安全连接的协商.所以我相信在这里问的正确的问题是什么是OpenSSL库.如果可以处理TLS连接,则curl可以处理TLS连接.

那么如何弄清楚openssl(或NSS)库的能力呢?

<?PHP    
$curl_info = curl_version();
echo $curl_info['ssl_version'];

这将会倾倒出来

OpenSSL/1.0.1k

然后,您可以查看该版本的发行说明,看看是否包含TLS支持.

OpenSSL发行说明 – https://www.openssl.org/news/openssl-1.0.1-notes.html

NSS发行说明 – https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases

Spoiler警报

> openssl包括对OpenSSL 1.0.1中TLS v1.1和TLS v1.2的支持[2012年3月14日]NSS包括对3.14中TLS v1.1的支持>包括NSS支持3.15中的TLS v1.2

脚本宝典总结

以上是脚本宝典为你收集整理的php – 验证curl是否使用TLS全部内容,希望文章能够帮你解决php – 验证curl是否使用TLS所遇到的问题。

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

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