Ошибка pdo_sqlsrv в процессе проверки сертификата SSL

используя 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, но это не сработало.

Вы можете добавить опцию TrustServerCertificate = true к URL-адресу подключения.

Olivier 29.09.2023 21:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

попробуй это, не помогло

danieldecarvalho 29.09.2023 17:57

Как это может решить проблему SSL?

Olivier 29.09.2023 21:31

вы можете установить dsn:

A programmer who has no money 30.09.2023 15:06

установите dsn: sqlsrv:Database=F22D;Server=219.133.1.71,1688;TrustServerCer‌​tificate=true

A programmer who has no money 30.09.2023 15:06
Ответ принят как подходящий

TrustServerCertificate=false или TrustServerCertificate=true

вы можете попробовать это с параметром pdo dsn

Другие вопросы по теме