这是我通常使用 SSL 连接到 MySQL 数据库的方式:
$db = mysqli_init();
mysqli_ssl_set(
$db,
NULL,
NULL,
'/etc/ssl/my-certs/ssl-ca.crt.pem',
NULL,
NULL
);
mysqli_real_connect(
$db,
'db.example.com',
'john',
'123456',
NULL,
NULL,
NULL,
MYSQLI_CLIENT_SSL
);
Run Code Online (Sandbox Code Playgroud)
在阅读 的 PHP 文档时mysqli::options,我注意到该MYSQLI_OPT_SSL_VERIFY_SERVER_CERT选项的存在,我认为这是一个让 MySQLi 验证服务器证书的选项。不幸的是,MYSQLI_OPT_SSL_VERIFY_SERVER_CERT文档中没有描述。这个选项的存在让我怀疑我是否一直不安全地连接到 MySQL。现在我想知道安全连接到 MySQL 的正确方法是否是这样的:
$db = mysqli_init();
mysqli_options($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); // <- Attention.
mysqli_ssl_set(
$db,
NULL,
NULL,
'/etc/ssl/my-certs/ssl-ca.crt.pem',
NULL,
NULL
);
mysqli_real_connect(
$db,
'db.example.com',
'john',
'123456',
NULL,
NULL,
NULL,
MYSQLI_CLIENT_SSL
);
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT设置为true默认?MYSQLI_OPT_SSL_VERIFY_SERVER_CERT?(请引用)