Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"getimagesize(): SSL operation failed with code 1" on local Xampp only

getimagesize() fails in Xampp (local PC), although it works fine in the live environment.

Based on the error message, the issue seems related to certificate configuration. I have created self-signed certificates based on this article: https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/

This removed the SSL warning from Apache's error log, but the issue with getimage() is still the same.

If I pass the image's URL with http instead of https, the call works.

<?php
$file = "http://webtest.test/content/uploads/img.jpg";  // Will work
$file = "https://webtest.test/content/uploads/img.jpg"; // Will not work

// ...

$img_info = getimagesize($file);
if(!$img_info) {
  throw new Exception(__("The file type is not valid image (1)"));
}
?>

Error received:

PHP Warning:  getimagesize(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in \\xampp\\htdocs\\index.php on line 3, referer: https://webtest.test/
PHP Warning:  getimagesize(): Failed to enable crypto in \\xampp\\htdocs\\index.php on line 3, referer: https://webtest.test/
PHP Warning:  getimagesize(https://webtest.test/content/uploads/photos/2019/08/2f203cfc1e.jpg): failed to open stream: operation failed in \\xampp\\htdocs\\index.php on line 3, referer: https://webtest.test/

Xampp/PHP version 7.3.6. Loaded modules:

core mod_win32 mpm_winnt http_core mod_so mod_access_compat mod_actions mod_alias mod_allowmethods mod_asis mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dav_lock mod_dir mod_env mod_headers mod_include mod_info mod_isapi mod_log_config mod_cache_disk mod_mime mod_negotiation mod_proxy mod_proxy_ajp mod_rewrite mod_setenvif mod_socache_shmcb mod_ssl mod_status mod_php7 

Where could the problem be coming from, and how to fix it ?

like image 672
Angry Cub Avatar asked Jan 25 '23 21:01

Angry Cub


2 Answers

If you're trying to get image size from your own servers images dir, you can use base_path instead of url().'pathtoyourimage'.

like image 136
Garima Singh Avatar answered Feb 09 '23 07:02

Garima Singh


Adding the CA bundle to Apache SSL fix this.

SSLCertificateChainFile /etc/apache2/ssl/My_CA_Bundle.ca-bundle
like image 39
Techie Avatar answered Feb 09 '23 07:02

Techie