相关疑难解决方法(0)

使用 SSL 时 MySQLi 是否默认验证服务器证书?

这是我通常使用 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)

所以,我的问题是:

  1. MYSQLI_OPT_SSL_VERIFY_SERVER_CERT设置为true默认?
  2. 有什么作用MYSQLI_OPT_SSL_VERIFY_SERVER_CERT?(请引用)
  3. 使用 MySQLi 连接到远程 …

php mysql ssl

4
推荐指数
1
解决办法
1230
查看次数

标签 统计

mysql ×1

php ×1

ssl ×1