Cakephp+;RDS+;SSL:证书验证失败
我有一个Cakephp3.8网站,连接到RDS数据库。我正在尝试使用SSL数据库连接 我从AWS那里拿到了pem证书。我已经创建了一个可以访问我的数据库的测试用户,该用户被设置为需要SSL 我可以通过命令行使用我的用户成功连接到数据库:Cakephp+;RDS+;SSL:证书验证失败,ssl,cakephp,rds,Ssl,Cakephp,Rds,我有一个Cakephp3.8网站,连接到RDS数据库。我正在尝试使用SSL数据库连接 我从AWS那里拿到了pem证书。我已经创建了一个可以访问我的数据库的测试用户,该用户被设置为需要SSL 我可以通过命令行使用我的用户成功连接到数据库: mysql-u ssl-user-p-h xxxxx.xxxxx.ap-southest-2.rds.amazonaws.com--ssl-ca=。/rds-ca-2019-root.pem 我已经用CakePHP设置了数据库连接,如下所示: 'Datasour
mysql-u ssl-user-p-h xxxxx.xxxxx.ap-southest-2.rds.amazonaws.com--ssl-ca=。/rds-ca-2019-root.pem
我已经用CakePHP设置了数据库连接,如下所示:
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'xxxxx.xxxxx.ap-southeast-2.rds.amazonaws.com',
'username' => 'sl-user',
'password' => 'xxxxxxx',
'database' => 'xxxxxxx',
'ssl_ca' => '/var/www/rds-ca-2019-root.pem',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => true,
'url' => env('DATABASE_URL', null),
],
],
使用上述设置,连接失败,出现以下错误:
Error: [PDOException] SQLSTATE[HY000] [2002]
Caused by: [PDOException] PDO::_construct(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_sertificate:certificate verify failed (/var/www/vendor/cakephp/cakephp/src/Database/Driver.php:92)
你知道为什么CakePHP无法连接吗?实际上意识到RDS服务器正在运行MariaDB 10.3.x。AWS为MariaDB提供了具体的文件: 我的解决方案是使用组合证书:
您可能还需要提供
ssl\u密钥
和ssl\u证书
文件?我假设命令行会自动从某个地方提取这些信息。