我在 PHP 5.6 上使用 MySQL 时遇到问题,在 PHP 上调试 PHP、OpenSSL、MySQLnd 驱动程序并在 Ubuntu 14.04 机器上试用 mysql_client 三天后,我得出结论:Google Cloud SQL SSL 证书不起作用在 PHP 5.6 及更高版本上。
首先,Google Cloud 是一项很棒的服务,现代加密技术在整个 Google 生态系统中得到实施。但是,由于一个小问题,我无法使用它:Google Cloud SQL SSL Server 证书具有不可能的通用名称。
Google Cloud SQL Server(或对等)证书的通用名称 (CN) 类似于:
CN=project-name:instance-id
更糟糕的是,从 PHP 5.6 开始,所有加密的客户端流都将通过强制对等证书验证。(链接:PHP 5.6.x 中的 OpenSSL 更改)。我使用 PHP 数据对象 (PDO) 扩展,它使用本机驱动程序 MySQLnd 来处理所有 MySQL 业务。这使用原生 PHP 流来处理这些连接。
我一直在查看 PHP 上的 MySQLnd 源代码(链接:GitHub 上的 MYSQLnd 驱动程序代码),MySQLnd 配置选项以尝试禁用此特定 MySQLND 上的 SSL 对等验证代码。无济于事。
因此,如果我需要在 PHP 5.6 上使用 SSL 进行 MySQL 连接,我该怎么办?
非常感谢您的回复!