Назад | Перейти на главную страницу

Schannel connect / MS SQL Server 2014 SP 3 / Win 2008 R2 / PHP sqlsrv_connect -> Ошибка TLS

Я обновился с Ubuntu 19.10 до 20.04, и все прошло хорошо, за исключением следующей проблемы, возможно, вызванной 20.04, требующим TLS 1.2 (?). Я обновил MS SQL до последнего пакета обновления, и в Центре обновления Майкрософт ничего не ожидается.

Я получаю следующие ошибки Schannel:

An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.

и

The following fatal alert was generated: 40. The internal error state is 1205.

В средстве просмотра событий Windows. Экземпляр SQL Server, к которому я пытаюсь подключиться, имеет версию: 12.3.6024.0

<?php

$start = microtime(true);
setlocale(LC_MONETARY, 'en_GB');
date_default_timezone_set('Europe/London');

$serverName = "w2k8";
$connectionInfo = array(
        "UID"=>"me",
        "PWD"=>"mine",
        "Encrypt" =>1,
        "TraceFile"=>"/home/traceFile.txt",
        "TraceOn"=>1,
        "TrustServerCertificate"=>1
);
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
            die( print_r( sqlsrv_errors(), true));
} else {
print_r(get_defined_vars());
}

вышеуказанные выходы:

> [0] => Array
>     (
>         [0] => 08001
>         [SQLSTATE] => 08001
>         [1] => 10054
>         [code] => 10054
>         [2] => [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746
>         [message] => [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746
>     )
> 
> [1] => Array
>     (
>         [0] => 08001
>         [SQLSTATE] => 08001
>         [1] => 10054
>         [code] => 10054
>         [2] => [Microsoft][ODBC Driver 17 for SQL Server]Client unable to establish connection
>         [message] => [Microsoft][ODBC Driver 17 for SQL Server]Client unable to establish connection
>     )

Установлены следующие ключи реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server -> DisabledByDefault -> 0, Enabled -> 1

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client -> DisabledByDefault -> 0, Enabled -> 1

Я не знаю, что могу сделать, чтобы решить эту проблему, но должен.