PHP使用SSL连接到MS SQL

Sam*_*ems 5 php sql ubuntu ssl

我的意思是非常简单.我想通过安全连接从PHP脚本连接到外部MS SQL数据库.然而,这已经证明是有问题的,到目前为止,研究投入了三个小时,我感到很茫然.

客户端的平台是Ubuntu,这意味着我不能使用SQLSRV.安全连接已经过不同客户端的测试,工作正常.我目前正在使用PDO和DBlib连接到数据库,这也可以正常工作.

我无法找到任何强制安全连接的方法.我尝试了多个其他驱动程序,但无济于事.

我有什么选择?

编辑:我留下了以下FreeTDS日志......

config.c:543:   Got a match.
config.c:565:   host = 'XXXXXXXXXX'
config.c:595:   Found host entry XXXXXXXXXX.
config.c:599:   IP addr is XXXXXXXXXX.
config.c:565:   port = '1433'
config.c:565:   encryption = 'require'
config.c:565:   check certificate hostname = 'no'
config.c:629:   UNRECOGNIZED option 'check certificate hostname' ... ignoring.
config.c:565:   ca file = 'XXXXXXXXXX.pem'
config.c:629:   UNRECOGNIZED option 'ca file' ... ignoring.
Run Code Online (Sandbox Code Playgroud)

Don*_*mmy 3

如果你想使用PDO,你可以设置PDO ODBC。您将需要设置配置文件/etc/odbc.ini/etc/odbcinst.ini/etc/freetds/freetds.conf

您还必须安装 unixodbc 和 freetds: apt-get install unixodbc tdsodbc

您可以在此处查看更多信息:通过 PDO ODBC 将 PHP 连接到 MSSQL

编辑:要在 ODBC 中强制执行 SSL,请添加Encrypt关键字并将其在连接字符串中设置为 true。并将 SQL Server 设置为使用 SSL: https: //support.microsoft.com/en-us/kb/316898

编辑2:根据OP,按照以下规范添加encryption=require和到 freetds.config: http://www.freetds.org/userguide/freetdsconf.htm以及上述步骤将解决问题check certificate hostname