gpt4 book ai didi

PHP 5.6、MySQL、SSL 和自签名证书

转载 作者:可可西里 更新时间:2023-11-01 07:05:10 24 4
gpt4 key购买 nike

最近升级到 PHP 5.6 后,我在与 MySQL 的安全连接方面遇到了一些问题。这涉及 MySQLi 以及 PDO。

这是我的设置:

MySQLi:

$db->ssl_set('/etc/mysql/certs/client-key.pem', '/etc/mysql/certs/client-cert.pem', '/etc/mysql/certs/ca-cert.pem', NULL, NULL);

PDO:

array(
PDO::MYSQL_ATTR_SSL_KEY => '/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca-cert.pem'
)

首先,我收到错误“dh key 太小”。

其次,我收到错误“证书验证失败”。

我使用的是根据此 tutorial 使用 openssl 生成的自签名证书.

最佳答案

经过一些研究,我找到了问题的答案:

1。错误“dh key 太小”

由于 logjam,DH key 大小现在必须大于 768 位,而 MySQL 的默认大小为 512 位。 (注意:这将在 MySQL 5.7 中修复)。您必须在连接中提供适当的密码,例如CAMELLIA128-SHA.

MySQLi :

$db->ssl_set('/etc/mysql/certs/client-key.pem', '/etc/mysql/certs/client-cert.pem', '/etc/mysql/certs/ca-cert.pem', NULL, 'CAMELLIA128-SHA');

PDO :

array(
PDO::MYSQL_ATTR_SSL_KEY => '/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca-cert.pem',
PDO::MYSQL_ATTR_SSL_CIPHER => 'CAMELLIA128-SHA'
)

2。错误“证书验证失败”

生成证书时,您必须为每个证书使用正确的“通用名称”:

CA: hostname 
Server: FQDN, e.g. hostname.example.com
Client: somename

重要的部分是服务器证书,其中 Common Name 必须与您要连接的主机相同,例如主机名.example.com。

关于PHP 5.6、MySQL、SSL 和自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com