私はそれが古い質問であることを知っていますが、私もこの問題を抱えて解決したので、後世のために私の答えを共有すると思いました.
Amazonのドキュメントはかなり役に立ちます。まず、Amazon から mysql-ssl-ca-cert.pem ファイルをダウンロードする必要があります (リンクを参照)。次に、そのファイルを使用してターミナルから接続を試みます。
mysql --host=mydb.c83ks9ckdk39.us-east-1.rds.amazonaws.com --user=myuser -p --ssl_ca=mysql-ssl-ca-cert.pem
Amazon は、この許可ステートメントを使用して SSL への接続を制限できると言っているので、接続中にこのステートメントを実行します。
GRANT USAGE ON *.* TO 'myuser'@'%' REQUIRE SSL
ここで切断し、「--ssl_ca=mysql-ssl-ca-cert.pem」フラグなしで再度接続を試みます。拒否された場合は、このユーザーに SSL 接続が必要になったことがわかります。あとは、php を正しくセットアップするだけです。このようなもの:
$link = mysqli_init();
mysqli_options($link, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
$link->ssl_set(NULL,NULL,"mysql-ssl-ca-cert.pem",NULL,NULL);
$ok = $link->real_connect($MYSQL['host'], $MYSQL['user'], $MYSQL['pass'], $MYSQL['db'], 3306, NULL, MYSQLI_CLIENT_SSL);
接続できる場合は SSL で接続されており、Tom のクエリを実行して必要に応じて確認できます。
$rs = $link->query("SHOW STATUS LIKE 'ssl_cipher'");
print_r($rs->fetch_assoc());