Php 什么';MYSQLI\u客户端\u SSL和MYSQLI\u选项\u SSL\u验证\u服务器\u证书之间的区别是什么?
这是我通常使用SSL连接到MySQL数据库的方式:Php 什么';MYSQLI\u客户端\u SSL和MYSQLI\u选项\u SSL\u验证\u服务器\u证书之间的区别是什么?,php,mysqli,php-7,Php,Mysqli,Php 7,这是我通常使用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
$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
);
据我所知,MYSQLI_CLIENT_SSL
标志是使用SSL连接到服务器所必需的
今天,我偶然发现了的文档,并注意到它接受MYSQLI\u OPT\u SSL\u VERIFY\u SERVER\u CERT
作为选项,但遗憾的是,它的描述是空白的。所以,我想知道:
mysqli_选项($db,mysqli_OPT_SSL_VERIFY_SERVER_CERT,true)代码>
MYSQLI\u CLIENT\u SSL
标志MYSQLI\u OPT\u SSL\u VERIFY\u SERVER\u CERT
(true)当您希望根据已知权限验证服务器证书以确保这是到受信任主机的连接时使用。如果服务器上有自签名证书,请不要使用它MYSQLI\u OPT\u SSL\u VERIFY\u server\u CERT
和MYSQLI\u CLIENT\u SSL
假设我省略了
mysqli\u ssl\u集(…)
,而是将自签名CA证书添加到/usr/local/share/CA certificates/
,然后运行sudo update CA certificates
将自签名证书添加到受信任的存储中。我是否可以将MYSQLI\u OPT\u SSL\u VERIFY\u SERVER\u CERT
设置为true
?即使使用自签名证书,也可以验证服务器证书,只需将该证书添加到正确的信任存储区即可。“众所周知的权威机构”之所以出名,是因为默认情况下它们位于该信任存储中。@您需要在脚本应该运行的每台主机上运行sudo update ca certificates
。这不是个好主意。默认情况下,MYSQLI\u OPT\u SSL\u VERIFY\u SERVER\u CERT
是否设置为true
?您从哪里获得有关MYSQLI\u OPT\u SSL\u VERIFY\u SERVER\u CERT的信息?