PHP使用SSL连接到MS SQL

我的意思是要做到非常简单。 我想通过安全连接从PHP脚本连接到外部MS SQL数据库。 然而,这certificate是有问题的,并且到目前为止已经有三个小时的研究,我感到茫然。

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

我无法find任何强制安全连接的方法。 我已经尝试了多个其他驱动程序,无济于事。

我有什么select?

编辑:我剩下以下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. 

如果你想使用PDO,你可以设置PDO ODBC。 您需要设置配置文件/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=requirecheck certificate hostname freetds.config按照以下规范: http ://www.freetds.org/userguide/freetdsconf.htm与上述步骤将解决问题

您是否配置了mssql_connect来使用安全连接? 看看你的php.ini并验证mssql.secure_connection参数设置为打开

 [MSSQL] mssql.secure_connection = On