【问题标题】:Laravel MySql driver with SSL带有 SSL 的 Laravel MySql 驱动程序
【发布时间】:2018-06-14 12:16:17
【问题描述】:

我正在尝试使用 Laravel 应用程序连接到启用 SSL 的数据库,但是当我这样做时,我收到了错误的网关错误。根据几个不同的资源,我找到了 MySql 驱动程序的以下配置以添加对 SSL 连接的支持,但是使用此驱动程序配置,我得到了 Bad Gateway 错误。

驱动程序

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'sslmode' => env('DB_SSLMODE', 'prefer'),
            'options'   => [
                PDO::MYSQL_ATTR_SSL_CA    => '/path/to/file/ca.pem',
                PDO::MYSQL_ATTR_SSL_CERT    => '/path/to/file/client-cert.pem',
                PDO::MYSQL_ATTR_SSL_KEY    => '/path/to/file/client-key.pem'
            ],
            'strict' => true,
            'engine' => null,
        ],

我使用 Laravel Valet 作为开发环境。我在 Valet NGINX 错误日志中收到以下错误:2018/06/14 07:51:50 [error] 6495#0: *15 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: ccc.dev, request: "POST /oauth/token HTTP/1.1"

有谁知道如何在 Laravel 应用程序或 Valet 上通过启用 SSL 的数据库连接来解决此问题?

【问题讨论】:

  • 这里''/path/to/file/client-cert.pem'有错别字吗?此行开头的双单引号''
  • 这是一个复制粘贴错字。当我删除我的本地文件路径并用/path/to/file/ 替换它时,我抓住了太多东西。将更新帖子以删除额外的'
  • 你找到解决这个@Brady Charron 的方法了吗?我也在为同样的问题苦苦挣扎:(

标签: php mysql laravel ssl


【解决方案1】:

对我来说,它似乎不需要证书或 CA。设置这个工作:

 'sslmode' => 'require',
 'options' => [
     PDO::MYSQL_ATTR_SSL_KEY => '/path/to/file/client-key.pem'
 ],

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-01
    • 2019-11-07
    • 2022-08-18
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2022-10-07
    相关资源
    最近更新 更多