PHP 5.6 で MySQL を使用する際に問題が発生しました。3 日間にわたって PHP、OpenSSL、PHP 上の MySQLnd ドライバーをデバッグし、Ubuntu 14.04 マシンで mysql_client を試した結果、Google Cloud SQL SSL 証明書は機能しないという結論に達しました。 PHP 5.6 以降。
まず、Google Cloud は優れたサービスであり、最新の暗号化が Google エコシステム全体に適用されています。しかし、Google Cloud SQL SSL サーバーの証明書にはありえない共通名が含まれているという小さな問題があり、使用できませんでした。
Google Cloud SQL Server (またはピア) 証明書には、次のような共通名 (CN) があります。
CN=project-name:instance-id
さらに悪いことに、PHP 5.6 以降では、すべての暗号化されたクライアント ストリームが必須のピア証明書検証を通過します。(リンク: PHP 5.6.x での OpenSSL の変更点)。私は PHP Data Objects (PDO) 拡張機能を使用します。これは、ネイティブ ドライバー MySQLnd を使用してすべての MySQL ビジネスを処理します。これは、ネイティブ PHP ストリームを使用してこれらの接続を処理します。
PHP の MySQLnd ソース コード (リンク: GitHub の MYSQLnd ドライバー コード)、MySQLnd 構成オプションを調べて、この特定の MySQLND で SSL ピア検証コードを無効にしてみました。無駄に。
したがって、PHP 5.6 で MySQL 接続に SSL を使用する必要がある場合はどうすればよいですか?
あなたの応答は大歓迎です!