Php 为什么对等证书CN与CN=';35.246.68.234';?

Php 为什么对等证书CN与CN=';35.246.68.234';?,php,ssl,google-cloud-platform,google-cloud-sql,Php,Ssl,Google Cloud Platform,Google Cloud Sql,我是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/

我是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():对等证书CN=
wiiboardtest:personal'与预期的CN=
35.246.68.234'不匹配


问题是函数参数不正确
mysqli\u real\u 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);

使用TLS时,请使用主机名而不是IP地址进行连接。TLS的X.509证书通常使用主机名,因此与主机名匹配(是的,它们也可以验证IP地址,并且在某些领域中大量使用,但在其他地方这种情况很少见,如果您确实有这种需要,那么您应该已经精通TLS操作)。@PatrickMevzek-您的评论总体上是正确的,但在本用例中不适用于谷歌云SQL。这些是用于连接到云SQL的私有SSL证书。云SQL(通常)没有DNS名称,只有IP地址。这里的问题不是IP地址,他缺少一个函数调用参数。