【发布时间】:2015-05-04 07:03:39
【问题描述】:
我正在尝试从运行在 Ubuntu 和远程位置的 PHP/Zend 框架应用程序连接到 SQL Server。
我正在尝试让连接应用程序从 SQL Server 请求加密(因为 1433 上的默认连接是明确的,我不希望我的凭据被嗅探)。
我已在 SQL Server 上配置通配符 SSL 证书,并正在使用以下 DSN 创建 PDO 连接:
dblib:host=server-not-matching-domain.com:1433;dbname=MyDB;Encrypt=true;TrustServerCertificate=false;charset=
由于主机名与安装的证书不匹配,我预计连接会失败 - 但它不会失败。
【问题讨论】:
-
当您说您拥有通配符 SSL 证书时,该证书与哪些 CN 匹配?我怀疑驱动程序可能永远不会对主机名进行实际的 CN 检查; TrustServerCertificate=false 仅阻止自签名证书。
-
关键是主机名绝对不匹配通配符域,所以我预计会出错。如果在这种情况下我没有收到证书错误,那么当主机名匹配时我就无法信任连接。
-
有趣 - 我的问题似乎被重复了:stackoverflow.com/questions/34875958/… - 这里和那里都有很好的答案......协议是什么?
-
您能否准确验证您使用的是什么驱动程序以及客户端是 Ubuntu? sqlncli-11.0.1790.0 ?
-
我问是因为上次我尝试这个freetds 是在混合。 PDO_SQLSRV 仅适用于 Windows。也许您应该添加到 freetds.conf / odbc.ini...
encryption=require和check certificate hostname?
标签: php sql-server ubuntu pdo