|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2019-11-30 01:45 UTC] gilperon at gmail dot com
Description: ------------ The test script does not work anymore using Curl with any destination that is HTTPS. If you try any destination with HTTP it will work just fine. On .24 version this bug ONLY would happen when you first connected to a database and after that tried to use CURL. But now, this bug affects using only CURL and doesnt need to connect to database to trigger it anymore. This bug just got a lot more serious. Test script: --------------- <?php $curl = curl_init(); $opts = array(); $opts[CURLOPT_URL] = "https://www.sitepor500.com.br"; curl_setopt_array($curl,$opts); echo curl_exec($curl); ?> Expected result: ---------------- I should see the content of the requested url Actual result: -------------- Nothing is shown. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 07 08:00:02 2025 UTC |
nikic@php.net thanks for your attention. I can easily reproduce this bug installing LAMP on a CENTOS 7 new server on Linode. Just fire a cloud server, install lamp with PHP using 7.2.25 and the bug happens. Using file_get_contents the bug does not happen. Only with CURL. Also, the CURL code that I provided you, does not return any error, just an empty string when the requested domain contains HTTPS protocol. There is no error reported at error_log of Apache! Regarding the version of the libcurl I executed the code "var_dump( curl_version() );" and I got this: array(9) { ["version_number"]=> int(466176) ["age"]=> int(3) ["features"]=> int(558781) ["ssl_version_number"]=> int(0) ["version"]=> string(6) "7.29.0" ["host"]=> string(23) "x86_64-redhat-linux-gnu" ["ssl_version"]=> string(8) "NSS/3.36" ["libz_version"]=> string(5) "1.2.7" ["protocols"]=> array(20) { [0]=> string(4) "dict" [1]=> string(4) "file" [2]=> string(3) "ftp" [3]=> string(4) "ftps" [4]=> string(6) "gopher" [5]=> string(4) "http" [6]=> string(5) "https" [7]=> string(4) "imap" [8]=> string(5) "imaps" [9]=> string(4) "ldap" [10]=> string(5) "ldaps" [11]=> string(4) "pop3" [12]=> string(5) "pop3s" [13]=> string(4) "rtsp" [14]=> string(3) "scp" [15]=> string(4) "sftp" [16]=> string(4) "smtp" [17]=> string(5) "smtps" [18]=> string(6) "telnet" [19]=> string(4) "tftp" } }nikic@php.net I just woke up right now and went to try your code and suddenly this bug went away. I didnt make ANY update yesterday. I didnt do "yum update" and for some reason CURL came back to work! Then I tried adding the line of code - mysqli_connect("localhost","root","password") - above the CURL and then it crashed again. Which means that the bug that I reported a few days back came back to happen again. So now, CURL only does not work when opening the mysqli connection. Nikik I tried that 2 line of codes you asked me and the output follows below: CODE: <?php $conn = mysqli_connect("localhost","root","password"); $curl = curl_init(); $opts = array(); $opts[CURLOPT_URL] = "https://www.sitepor500.com.br"; $opts[CURLOPT_RETURNTRANSFER] = true; curl_setopt_array($curl,$opts); var_dump(curl_exec($curl)); var_dump(curl_errno($curl)) ?> OUTPUT bool(false) int(77) I investigated, and 77 means -> CURLE_SSL_CACERT_BADFILE. ALSO one even strange thing, if I replace $conn = mysqli_connect("localhost","root","password"); with just mysqli_connect("localhost","root","password"); The bug goes away and everything works! Hope this helps and if you want me to execute any other code, I am here to help!