回答

收藏

PHP使用SSL连接到MS SQL

技术问答 技术问答 249 人阅读 | 0 人回复 | 2023-09-14

我的意思是很简单。我想通过安全连接从PHP脚本连接到外部MS SQL数据库。然而,事实证明这是有问题的。到目前为止,我花了三个小时研究它。
9 I0 a, b* r: w: d6 E  u# q客户平台是Ubuntu,这意味着我不能用SQLSRV。与其他客户端测试安全连接,工作正常。我目前正在使用它PDO和DBlib连接到数据库也可以正常工作。5 @# x, n' \6 F( s/ F  G
我找不到任何强制建立安全连接的方法。我尝试了各种其他驱动程序,但没有用。
' b, T5 h8 s/ m% K我有什么选择?
: l5 z0 h3 ^0 Z+ k编辑:我留下了以下内容FreeTDS日志…, Y6 B' M8 ^8 Y3 L6 ^7 k
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.               
( B" U( i8 i5 E5 I- ]3 N    解决方案:                                                                0 C2 r1 g9 Q( A( r9 O# @3 S0 o2 M
                                                                如果要使用PDO,则可以设置PDO4 D- Y$ y+ ]: v* W- K
ODBC。您将需要设置的配置文件/etc/odbc.ini,/etc/odbcinst.ini和/etc/freetds/freetds.conf。
0 i+ h+ N* [% E# u. a你也可以安装它unixODBC和freetds的:apt-get install unixodbc tdsodbc。) b. K4 E! Z2 h8 U# j+ t
通过这里查看更多信息:PDOODBC将PHP连接到MSSQL
( G" C: |+ f3 F9 j( w) v编辑:    要在ODBC中实施SSL,请添加Encrypt并将关键字设置为true(在您的连接字符串中)。并将您的SQL
( L/ b# F, `, X. w! q, |Server设置为使用SSL:https ://support.microsoft.com/en-us/kb/316898& l& X- u+ c' K& I5 j+ E
编辑2:    根据OP,按照以下规范添加encryption=require和check certificatehostname到freetds.config中:http
3 t9 y; K6 n; g8 P  |://www.freetds.org/userguide/freetdsconf.htm以上步骤将解决此问题。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则