SQL Server Symfony + mssql,错误tls_process_server_certificate:证书验证失败:自签名证书

hiz5n14c  于 2023-01-04  发布在  其他
关注(0)|答案(3)|浏览(139)

我尝试将mssql连接到我的symfony项目,但得到错误SQLSTATE[08001]:[Microsoft][用于SQL Server的ODBC驱动程序18]SSL提供程序:[错误:1416 F086:SSL例程:tls_process_server_certificate:证书验证失败:自签名证书]”因此我想在pdo concept上设置“TrustServerCertificate=yes”,但不知道它在symfony上的效果如何

我尝试写入.env

数据库MSSQL URL=“mssql://用户:密码@ip:端口/数据库名称?可信连接=是&加密=是&信任服务器证书=是”

在配置/包/条令中.yaml:

dbal:
     jtl:
        url: '%env(resolve:DATABASE_MSSQL_URL)%'
        driver: 'pdo_sqlsrv'
        server_version: '13'
        charset: utf8mb4

这没有帮助

hwazgwia

hwazgwia1#

在mssql连接url中,属性只能使用分号('; ')

mssql://user:pass[serverName[\instanceName][:portNumber]];property=value[;property=value]]

示例:

DATABASE_URL=mssql://user:pass@serverName:port/db;**TrustServerCertificate=1**

虽然它是jdbc,但它也适用于这个case

rfbsl7qr

rfbsl7qr2#

对我来说,这些选项效果很好:

dbal:
  connections:
    ...
    my_ms_sql_db:
      ...
      options:
        TrustServerCertificate: 1
h7appiyu

h7appiyu3#

您可以添加一个连接选项。但是,在我的项目中,它只适用于显式的“url”和添加到两者的“TrustServerCertificate”选项:

dbal:
  connections:
    ...
    my_ms_sql_db:
      url: "sqlsrv://my_user:my_password@192.168.0.2:1434/my_db?TrustServerCertificate=yes"
      driver: pdo_sqlsrv
      charset: UTF-8
      host: ...
      port: ...
      ...
      options:
        TrustServerCertificate: yes

相关问题