Я новичок в Laravel и пытался подключиться к базе данных Azure PostgreSQL с помощью Laravel 11, но он продолжает сообщать мне, что не может проверить сертификат SSL. Когда я попытался подключиться к базе данных с помощью файла test.php, у меня не возникло проблем с подключением к базе данных.
Но когда я пытаюсь отредактировать файл .env, дайте ему те же учетные данные, что и test.php, запустите его, и он выдает ошибку SQLSTATE[08006] [7] SSL error: certificate verify failed
Я спросил
код test.php:
$conn = pg_connect("host=<host address> port=<port number> dbname=<database name> user=<username> password=<password> sslmode=require sslrootcert=c:\ssl\DigiCertGlobalRootCA.crt.pem");
Это может помочь: stackoverflow.com/questions/78259406/…
@Olivier Да, я загрузил его прямо из Azure, и он работает, когда я тестировал его с помощью приведенного выше файла test.php. но проблема возникла, когда я попытался подключить его к Laravel.






Я решил это, используя следующую конфигурацию для файла .env и базы данных.php в моем проекте Laravel:
.env-файл:
DB_CONNECTION=pgsql
DB_HOST=<your_host>
DB_PORT=<your_port>
DB_DATABASE=<your_database_name>
DB_USERNAME=<username>
DB_PASSWORD=<password>
# add your SSL certificate path following the example below
DB_URL=pgsql://<username>:<password>@<your_host>:<your_port>/<your_database_name>?sslmode=require&sslrootcert=<path_to_your_certificate>
конфигурация базы данных в «config/database.php»
'pgsql' => [
'driver' => 'pgsql',
'url' => env('DB_URL'), // add this line
# ..... add the rest of your settings
],
Я не знаю, является ли приведенное выше решение лучшим решением или нет, но, по крайней мере, оно работает для меня.
Вы уверены, что файл сертификата имеет двойное расширение (.crt.pem)?