首頁  >  問答  >  主體

SSL 提供者錯誤:由 PHP 中不受信任的機構向 MSSQL Server 所發出的憑證鏈

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

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

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

<?php
$serverName = "10.xxx.xx.148";
$connectionInfo = array( "Database"=>"zzzz", "UID"=>"ww","PWD"=>"123cccc");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
 echo "Connection established.<br />";
}else{
 echo "Connection could not be established.<br />";
 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粉338969567P粉338969567324 天前669

全部回覆(2)我來回復

  • P粉545956597

    P粉5459565972023-10-31 10:06:43

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

    回覆
    0
  • P粉327903045

    P粉3279030452023-10-31 09:22:33

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

    <?php
    $serverName = "10.xxx.xx.148";
    $connectionInfo = array( 
     "Database"=>"zzzz",
     "UID"=>"ww",
     "PWD"=>"123cccc",
     "TrustServerCertificate"=>true
    );
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    ?>

    回覆
    0
  • 取消回覆