I wrote support ssl mysqli you don't need change anymore mysqli connect exchange to your own mysqli . Overwrite __construct mysqli with support ssl can be like that: <?php class myssl_mysqli extends \mysqli { public function __construct($db_host, $db_user, $db_pass, $db_name, $port, $persistent = true, $ssl = false, $certpublic = "") { if($ssl) { parent::init(); parent::options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false); parent::ssl_set(NULL, NULL, $certpublic, NULL, NULL); parent::real_connect(($persistent ? 'p:' : '') . $db_host, $db_user, $db_pass, $db_name, $port, '', MYSQLI_CLIENT_SSL | MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT ); } else { parent::__construct($db_host, $db_user, $db_pass, $db_name, $port); }}$db = new myssl_mysqli('localhost','user', 'pass','db', '3306', true, true, '/home/mypublicowncert.pem'); ?>in this example i off the verificate cert by authority ssl, due it own cery created