这通常是我使用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
);
据我了解,必须使用MYSQLI_CLIENT_SSL
标志才能使mysqli::real_connect
使用SSL连接到服务器。
今天,我偶然发现了mysqli::options
的文档,并注意到它接受MYSQLI_OPT_SSL_VERIFY_SERVER_CERT
作为选项,但可惜,它的描述是空白的。所以,我想知道:
mysqli_options($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
?MYSQLI_CLIENT_SSL
标志?答案 0 :(得分:0)
<!-- Unittest related versions -->
<junit.version>4.12</junit.version>
<powermock.version>1.6.4</powermock.version>
<mockito.version>1.10.19</mockito.version>
<mockito-core.version>2.8.9</mockito-core.version>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
</dependency>
<dependency>
(真),当您要根据知名机构验证服务器证书以确保这是与受信任主机的连接时使用。如果服务器上具有自签名证书,请不要使用它。
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT
。
当您拥有由权威机构提供的mysql服务器证书并且想要加密和MITM-attack保护时,请同时使用MYSQLI_CLIENT_SSL
和MYSQLI_OPT_SSL_VERIFY_SERVER_CERT
。