'your_connection' => array(
'driver' => 'mysql',
'host' => $host,
'database' => $database,
'username' => $username,
'password' => $password,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::MYSQL_ATTR_SSL_KEY => $cert_base . '/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => $cert_base . '/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => $cert_base . '/ca-cert.pem'
),
),
据我了解,
PDO::MYSQL_ATTR_SSL_CA
,可以从这里下载
我不确定
PDO::MYSQL_ATTR_SSL_KEY
和PDO::MYSQL_ATTR_SSL_CERT
我读过类似this
的内容openssl genrsa 2048 > ca-key.pem
openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem
看来这就是我需要做的,有人可以确认吗?
要在 Laravel 中通过 SSL 连接到 AWS RDS,您只需执行几件事。
从以下位置下载 rds-combined-ca-bundle.pem 文件:
https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
然后将其放入您的配置中,如下所示:
'options' => array(
PDO::MYSQL_ATTR_SSL_CA => $cert_base . '/rds-combined-ca-bundle.pem'
),
不需要另外两把钥匙即可连接。
RDS Proxy and cluster endpoint SSL connection with Laravel 7 application
使用此链接下载 pem 文件
AmazonRootCA1.pem
'options' => [
PDO::MYSQL_ATTR_SSL_CA => base_path('AmazonRootCA1.pem')
]