You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Error OpenSSL Shutdown while in init - cURL - MSSQL #14230
Curl error: 60 - SSL certificate problem: unable to get local issuer certificate
PHP Fatal error: Uncaught PDOException: SQLSTATE[08S01]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:140E0197:SSL routines:SSL_shutdown:shutdown while in init] in /data/test.php:30
Stack trace:
0 /data/test.php(30): PDO->rollBack()
1 {main}
thrown in /data/test.php on line 30
But I expected no SQL error, only the cURL error :
Curl error: 60 - SSL certificate problem: unable to get local issuer certificate // no SQL error
The error only happens when the curl CA verification reports a certificate not allowed.
The error does not happen when I remove TrustServerCertificate=yes in the dsn.
The error does not happen when CURLOPT_SSL_VERIFYPEER is set to false.
It's seems that the Mssql driver call openssl function SSL_shutdown() while SSL_in_init() send true.
The SSL_in_init() seems to return true only when the curl CA verification reports a certificate not allowed.
I don't know if php curl implementation does not close the connection correctly or if the MSSQL driver should check if SSL_in_init() returns true before calling SSL_shutdown(), but there is something wrong here.
From the code you've provided, it looks like the problem is with pdo_sqlsrv. Could you please report the problem in the following repository? https://github.com/microsoft/msphpsql
I'll close this issue, but we can always reopen it if necessary.
Activity
SakiTakamachi commentedon May 17, 2024
pdo_sqlsrv is not something we maintain.
From the code you've provided, it looks like the problem is with pdo_sqlsrv. Could you please report the problem in the following repository?
https://github.com/microsoft/msphpsql
I'll close this issue, but we can always reopen it if necessary.