используя Ubuntu 22, php8.2, драйвер odbc 18, OpenSSL 3.0.2, когда я пытаюсь подключиться к базе данных sqlsrv с помощью pdo_sqlsrv, он возвращает мне эту ошибку:
SQLSTATE [08001]: [Microsoft] [Драйвер ODBC 18 для SQL Server] Поставщик SSL: [ошибка: 0A000086: процедуры SSL:: проверка сертификата не удалась: самозаверяющий сертификат]
код, который я использовал:
<?php
$sSGBD = "sqlsrv";
$sDatabase = "db_Des";
$sServer = "10...24";
$sUser = "aplic_...";
$sPwd = "....";
try {
if (!$oPDO) {
$oPDO = new PDO ("$sSGBD:Server=$sServer;Database=$sDatabase","$sUser","$sPwd");
$oPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
} catch(PDOException $e) {
echo $e->getMessage();
}
У меня есть рабочий сервер с Debian 11, php 7.3, ODBC 17, openssl 1.1 и pdo_sqlsrv, и он хорошо соединяется с моей базой данных sqlsrv 2008 года. Я уже пытался запустить скрипт на другом сервере с теми же характеристиками (Debian 11, php 7.3, ODBC 17, openssl 1.1 (та же конфигурация)), но он вернул мне ту же ошибку, что и в Ubuntu 22.
в моей установке PHP 8.2, использующей Ubuntu 22, я пытался подключиться как к sqlsrv 2008, так и к sqlsrv 2022, но это не сработало.






PDO::SQLSRV_ATTR_DIRECT_QUERY => true,
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8
попробуй это, не помогло
Как это может решить проблему SSL?
вы можете установить dsn:
установите dsn: sqlsrv:Database=F22D;Server=219.133.1.71,1688;TrustServerCertificate=true
TrustServerCertificate=false или TrustServerCertificate=true
вы можете попробовать это с параметром pdo dsn
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , добавив дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
Вы можете добавить опцию
TrustServerCertificate = trueк URL-адресу подключения.