You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04(AzureVM)连接SQLServer遇SSL证书验证失败求助

问题原因

这是因为ODBC Driver 18 for SQL Server默认强制开启SSL证书验证,但Ubuntu 22.04系统中缺少SQL Server所使用的DigiCert根证书,导致验证失败。而Windows系统默认预装了微软相关的根证书,所以不会出现这个问题。

解决方法

方法一:临时禁用证书验证(仅测试环境使用)

修改PDO连接的DSN,添加TrustServerCertificate=Yes参数跳过证书验证:

<?php
    $dsn = 'sqlsrv:server=hogehoge;TrustServerCertificate=Yes';
    $user = 'user';
    $password = 'password';

    $dbh = new PDO($dsn, $user, $password);

    $sql = "select * from user";
    foreach ($dbh->query($sql) as $row) {
        echo $row['id'] . ' ' . $row['name'] . "<br>";
    }

    $dbh = null;
?>

方法二:安装根证书(生产环境推荐)

通过以下步骤在Ubuntu系统中安装所需的根证书:

  1. 下载DigiCert全球根证书:
wget https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
  1. 将证书复制到系统信任证书目录:
sudo cp DigiCertGlobalRootCA.crt.pem /usr/local/share/ca-certificates/
  1. 更新系统证书缓存:
sudo update-ca-certificates
  1. 重启PHP相关服务(根据你的Web服务器选择):
  • 若使用Apache:
sudo systemctl restart apache2
  • 若使用PHP-FPM(替换为你的实际PHP版本,比如php8.0-fpm):
sudo systemctl restart php8.1-fpm

内容的提问来源于stack exchange,提问作者ssa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:45:49