I am new to php and i am trying to connect to gloudsql using ssl
certificates. But it is giving me an error about the CN. what does it mean
and what is missing in my code? My project name is wiiboardtest
and my
instance name is personal
$key = 'C:/Users/tasne/Downloads/client-key.pem';
$cert = 'C:/Users/tas/Downloads/client-cert.pem';
$ca = 'C:/Users/tas/Downloads/server-ca (1).pem';
$con = mysqli_init();
if(!$con){
die("mysqli_init failed");
}
$trial =
mysqli_ssl_set($con,$key,$cert,$ca,NULL,'ECDHE-RSA-AES256-SHA');
mysqli_options($con,
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false);
$dbhost = '35.246.68.234';
$dbuser = 'root';
$dbpass = 'waffer';
$database = 'personal';
$port = '3306';
$conn=mysqli_real_connect($con,$dbhost,$dbuser,$dbpass,$database,$port,
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT );
if(!$conn){
die("connect error due
to:".mysqli_connect_error());
};
mysqli_real_connect(): Peer certificate CN=
wiiboardtest:personal' did not match expected CN=
35.246.68.234'
The problem is that your function arguments are not correct. mysqli_real_connect
requires 8 parameters, you passed 7, which means that flags
parameter is used for socket
.
Change this line:
$conn=mysqli_real_connect($con,$dbhost,$dbuser,$dbpass,$database,$port,MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
To this:
$conn=mysqli_real_connect($con,$dbhost,$dbuser,$dbpass,$database,$port,NULL,MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);