美好的一天!
我真的很努力解决我遇到的问题。我一直在互联网上搜索但仍然没有运气。顺便说一下,我是第一次从头开始安装LAMP。我使用 Ubuntu 22.04 和 Laravel v10.39 作为我的网站框架。我还使用 Let's Encrypt 作为我的 Web SSL 证书,但我确实无法解决该问题。我正在尝试从我的网络托管连接到我的 Windows 远程 MSSQL 数据库以获取一些数据。
请检查下面的问题以及您可能需要帮助我解决此问题的一些信息。
错误:
SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]
我的LARAVEL数据库配置
'world' => [
'driver' => 'sqlsrv',
'url' => env('DATABASE_URL'),
'host' => env('WORLD_DB_SQLSRV_HOST', 'localhost'),
'port' => env('WORLD_DB_SQLSRV_PORT', '1433'),
'database' => env('WORLD_DB_SQLSRV_DATABASE', 'forge'),
'username' => env('WORLD_DB_SQLSRV_USERNAME', 'forge'),
'password' => env('WORLD_DB_SQLSRV_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'options' => [
// SSL Options
'Encrypt' => true, // Uncomment this line if required
'TrustServerCertificate' => false, // Uncomment this line if required
],
我的sqlsrv和pdo_sqlsrv版本都是5.11.1 PHP 版本8.2,OpenSSL 3.0.2
您的 SQL Server 证书与 Web 服务器使用的证书非常不同(除非您已在 SQL Server 中安装该证书)。
默认情况下,SQL Server 将使用它自己生成的自签名证书。要信任该设置,请将
TrustServerCertificate
设置为 true
每个可能需要证书的服务都需要显式配置/安装证书,仅在您的计算机上存在证书文件并不意味着它可以用于任何用途。