【发布时间】:2022-01-22 05:34:29
【问题描述】:
我在尝试连接到 gcloud postgres db 时遇到问题,允许在我的 laravel 应用程序中运行 ssl,该应用程序在云中运行。我从 gcloud 下载了所有三个证书文件,并在 config/database.php 中设置了路径。
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'require',
'options' => [
'sslcert' => storage_path(path: 'client-cert.pem'),
'sslkey' => storage_path(path: 'client-key.pem'),
'sslrootcert' => storage_path(path: 'server-ca.pem'),
],
],
启用“仅允许 SSL 连接”后,我收到此错误:
'SQLSTATE[08006] [7] FATAL: connection requires a valid client certificate (SQL: select * from "sessions" where "id" = wDJOd7Ssm6ggLngYQPprlIP0FNrtMxGTtCW4lELX limit 1)'
我可以通过 pgadmin 和 psql 控制台使用本地机器(Windows)的 SSL 证书成功连接到同一个数据库。但我需要通过我的应用程序来完成。请帮助我克服这个问题,因为它在 GCP 安全指挥中心显示为一个高安全风险因素。 谢谢。
【问题讨论】:
标签: laravel postgresql ssl google-cloud-platform gcloud