【问题标题】:php to mssql server errro SSL Provider: The certificate chain was issued by an authority that is not trustedphp to mssql server error SSL Provider: 证书链是由不受信任的权威机构颁发的
【发布时间】:2022-11-11 20:53:00
【问题描述】:

首先,我真的很菜鸟。(对不起) 其次,我试图将 php 连接到 mssql 服务器。 第三,我已经安装了 sqlsrv、pdo_sqlsrv 和 msodbcsql.msi 但尝试连接时仍然收到错误消息

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

我在 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 的说明,我按照说明安装它。但随后显示我无法解决的新错误。

数组 ( [0] => 数组 ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [代码] => -2146893019 2 => [Microsoft][ODBC Driver 18 for SQL Server ]SSL 提供者:证书链由不受信任的机构颁发。[消息] => [Microsoft][ODBC Driver 18 for SQL Server]SSL 提供者:证书链由不受信任的机构颁发。) 1 => 数组 ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [代码] => -2146893019 2 => [Microsoft][ODBC Driver 18 for SQL Server]Client无法建立连接 [消息] => [Microsoft][ODBC Driver 18 for SQL Server]客户端无法建立连接))

附加信息:当我将 dbeaver(不同的 pc)连接到 mssql 服务器(相同的服务器)时没有问题。

先感谢您

【问题讨论】:

  • 如果您连接到 PHP 外部的机器,您是否也会收到证书错误?
  • 你检查了documentation 还是这个Q&A
  • @Zhorov,我尝试在附加连接参数中添加 TrustServerCertificate=True。但是当我尝试从 php 主机连接时,错误仍然发生。
  • @user3783243 对不起,我不明白你的意思,我是 mysql 对我来说真的是一个陌生人
  • 此行为在 ODBC 和 JDBC 的最新主要版本中有详细记录,例如:ODBC Driver 18.0 for SQL Server Released。可用选项显示在Connection Options。将TrustServerCertificate 设置为1True 将接受SQL Server 的自签名证书。如果您无法正常工作,请Edit您的问题以显示您的确切更改。

标签: php sql-server ssl sqlsrv


【解决方案1】:

我使用 ODBC Driver 17 而不是 ODBC Driver 18 并解决了问题。就我而言,我不需要加密,所以驱动程序 17 对我来说没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2018-04-20
    • 2022-11-16
    • 2022-01-03
    • 2014-07-13
    相关资源
    最近更新 更多