解決SSL routines:tls_process_server_certificate問題
更新sqlsrv驅(qū)動后,產(chǎn)生TLS加密的問題,問題如下:
SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:self signed certificate]
原因:
該問題由SSL使用TLS加密通訊引起的證書問題,與代碼無關(guān)。使用舊版的17驅(qū)動即可恢復正常。
解決辦法:
如果是使用\PDO連接,
在連接的DSN信息增加TrustServerCertificate=1,Encrypt=1即可,在options增加無效。
例:
sqlsrv:Server=IP,端口;Database=dbname;TrustServerCertificate=1;Encrypt=1
如果是Laravel之類數(shù)組配置參考如下:
參考https://www.php.net/manual/zh/ref.pdo-sqlsrv.connection.php
標簽: