SSL 提供者錯誤:由 PHP 中不受信任的機構向 MSSQL Server 所發出的憑證鏈
P粉338969567
P粉338969567 2023-10-30 18:03:00
0
2
631

首先,我真的很菜鳥。 (抱歉) 其次,我嘗試將 php 連接到 mssql 伺服器。 第三,我已經安裝了 sqlsrv、pdo_sqlsrv 和 msodbcsql.msi 但嘗試連線時仍收到錯誤訊息

我的php版本是8.0.10,x64; mssql 伺服器 2012。

我的 php 程式碼用於測試連線:

"zzzz", "UID"=>"ww","PWD"=>"123cccc"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.
"; }else{ echo "Connection could not be established.
"; die( print_r( sqlsrv_errors(), true));} ?>

然後我收到錯誤,並指示安裝 msodbcsql.msi,我按照指示安裝它。但隨後顯示我無法解決的新錯誤。

Array ( [0] => Array ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [程式碼] => -2146893019 2 =>; Driver 18 for SQL Server] SSL 提供者:憑證鏈由不受信任的頒發機構所頒發。[訊息] => [Microsoft][ODBC Driver 18 for SQL Server]SSL 提供者:憑證鏈由不受信任的頒發機構頒發。)1 => 陣列( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [代碼] => -2146893019 2 => [Microsoft][ forBCr 18OD 數字SQL Server]用戶端無法建立連線[訊息] => [Microsoft][ODBC Driver 18 for SQL Server]用戶端無法建立連線) )

附加資訊:當我將 dbeaver(不同的電腦)連接到 mssql 伺服器(同一台伺服器)時沒有問題。

提前謝謝

P粉338969567
P粉338969567

全部回覆 (2)
P粉545956597

我使用 ODBC 驅動程式 17 而不是 ODBC 驅動程式 18,問題已解決。就我而言,我不需要加密,因此驅動程式 17 對我來說沒問題。

    P粉327903045

    萬一有人想知道如何將TrustServerCertificate定義為1,我就是這樣做的,我將參數新增為新的陣列元素,如下所示

    "zzzz", "UID"=>"ww", "PWD"=>"123cccc", "TrustServerCertificate"=>true ); $conn = sqlsrv_connect( $serverName, $connectionInfo); ?>
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!