为什么对端证书CN不匹配CN='35.246.68.234'?

why does the peer certificate CN does not match the CN='35.246.68.234'?

我是 php 的新手,我正在尝试使用 ssl 连接到 gloudsql 证书。但它给我一个关于 CN 的错误。这是什么意思 我的代码中缺少什么?我的项目名称是 wiiboardtest 和我的 实例名称是 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'

问题是你的函数参数不正确。 mysqli_real_connect需要8个参数,你传了7个,也就是说flags参数用于socket.

更改此行:

$conn=mysqli_real_connect($con,$dbhost,$dbuser,$dbpass,$database,$port,MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);

为此:

$conn=mysqli_real_connect($con,$dbhost,$dbuser,$dbpass,$database,$port,NULL,MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);