Erreur du fournisseur SSL : chaîne de certificats émise au serveur MSSQL par une autorité non fiable en PHP
P粉338969567
P粉338969567 2023-10-30 18:03:00
0
2
664

Tout d’abord, je suis vraiment un noob. (Se sentir désolé) Deuxièmement, j'ai essayé de connecter php au serveur mssql. Troisièmement, j'ai installé sqlsrv, pdo_sqlsrv et msodbcsql.msi Mais je reçois toujours un message d'erreur lorsque j'essaie de me connecter

Ma version de PHP est 8.0.10, x64 ; serveur mssql 2012.

Mon code php pour tester la connexion :

<?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));}
?>

Ensuite, j'ai eu une erreur et j'ai été invité à installer msodbcsql.msi, je l'ai installé comme indiqué. Mais ensuite, de nouvelles erreurs s'affichent que je ne parviens pas à résoudre.

Array ( [0] => Array ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Code] => -2146893019 2 => [Microsoft][Pilote ODBC 18 pour SQL Server] Fournisseur SSL : la chaîne de certificats a été émise par une autorité non fiable [Message] => [Microsoft][ODBC Driver 18 pour SQL Server] Fournisseur SSL : la chaîne de certificats a été émise par une autorité non fiable) 1 =>. ; Tableau ([0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Code] => -2146893019 2 => [Microsoft][Pilote ODBC 18 pour SQL Server] Le client ne peut pas établir de connexion [Message] => [Microsoft][Pilote ODBC 18 pour SQL Server]Le client ne parvient pas à établir la connexion) )

Information supplémentaire : Il n'y a aucun problème lorsque je connecte dbeaver (PC différent) au serveur mssql (même serveur).

Merci d'avance

P粉338969567
P粉338969567

répondre à tous(2)
P粉545956597

J'ai utilisé le pilote ODBC 17 au lieu du pilote ODBC 18 et le problème a été résolu. Dans mon cas, je n'ai pas besoin de cryptage, donc le pilote 17 me convient.

P粉327903045

Juste au cas où quelqu'un se demanderait comment définir TrustServerCertificate comme 1, voici comment je l'ai fait, j'ai ajouté les paramètres en tant que nouveaux éléments du tableau comme ci-dessous

<?php
$serverName = "10.xxx.xx.148";
$connectionInfo = array( 
 "Database"=>"zzzz",
 "UID"=>"ww",
 "PWD"=>"123cccc",
 "TrustServerCertificate"=>true
);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
?>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!