我正在尝试在 SQL Server 2005 Express 版本 Svc Pk 3 上运行 SSL 加密。我已经尝试了所有方法(整个周末都在工作),但是当我使用 wireshark 查看流量时,我没有看到 TLS 或 SSL 数据包。
我已按照此知识库文章中的说明进行操作 http://technet.microsoft.com/en-us/library/ms189067.aspx 以及其他一些知识库文章。我无法发布所有链接,因为 stackoverflow 限制我只能发布 1 个链接。
环境
-SQl Svr 2005 Express Svc Pk 3。
-Windows XP 桌面
问题描述
-我以“本地系统”作为登录名运行 SQL Svr svc(而不是本地服务、网络服务)
-我从 godaddy.com 购买了 SSL 证书,并使用 MMC 将其导入到 Certifications/personal/certificates 文件夹中。
-我已检查证书中所有必需的组件,看起来都不错 - 比如私钥、服务器名称等
-启用“强制加密”并使用 SQL Server 配置管理器选择导入的证书。
-我还从本地安全策略(系统加密)启用了 FIPS 140-2,因为我希望最终符合 FIPS 140-2。
-我使用 Mgmt Studio 并选中“加密连接”。
-我已连接并且“连接属性”表明该连接已加密
但然后当我使用 Wireshark 查看数据包流量时,我看不到任何 TLS 或 SSL 协议数据包!
缺什么??
这是来自 sql server ERRORLOG 文件的日志...为了方便起见,我删除了行中的时间戳....
在文件“C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG”中记录 SQL Server 消息。
此 SQL Server 实例最后报告使用进程 ID 2860,时间为 2010 年 11 月 8 日凌晨 1:00:27(本地时间)2010 年 11 月 8 日上午 9:00:27(UTC)。这只是一条信息性消息;无需用户采取任何措施。注册表启动参数:-d C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf -e C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG -l C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\mastlog.ldf
SQL Server 正在以正常优先级 (=7) 启动。这只是一条信息性消息。无需用户采取任何措施。
检测到 2 个 CPU。这是一条信息性消息;无需用户执行任何操作。
使用动态锁分配。每个节点初始分配 2500 个锁块和 5000 个锁所有者块。这只是一条信息性消息。无需用户操作。
已在此 SQL Server 实例上启用数据库镜像。
启动数据库‘master’。
恢复正在数据库“master”(1) 中写入检查点。这只是一条信息性消息。无需用户执行任何操作。
SQL 跟踪 ID 1 由登录“sa”启动。
启动数据库“mssqlsystemresource”。
资源数据库构建版本为 9.00.4912。这只是一条信息性消息。无需用户执行任何操作。
启动数据库‘模型’。
服务器名称为“AMITLAPTOP\SQLEXPRESS”。这只是一条信息性消息。无需用户采取任何行动。
启动数据库“msdb”。
证书已成功加载以进行加密。
服务器正在监听 [‘any’ 1772]。
服务器本地连接提供程序已准备好接受 [ \.\pipe\SQLLocal\SQLEXPRESS ] 上的连接。
服务器本地连接提供程序已准备好接受 [ \.\pipe\MSSQL$SQLEXPRESS\sql\query ] 上的连接。
未启动专用管理员连接支持,因为此版本的 SQL Server 上不提供此功能。这只是一条信息性消息。无需用户执行任何操作。
清除 tempdb 数据库。
启动数据库“tempdb”。
恢复已完成。这只是一条信息性消息。无需用户执行任何操作。
Service Broker 协议传输已被禁用或未配置。
数据库镜像协议传输已被禁用或者未配置。
Service Broker 管理器已启动。
SQL 网络接口库无法为 SQL Server 服务注册服务主体名称 (SPN)。错误:0x54b,状态:3。无法注册 SPN 可能会导致集成身份验证回退到 NTLM 而不是 Kerberos。这是一条信息性消息。仅当身份验证策略要求使用 Kerberos 身份验证时才需要采取进一步措施。
SQL Server 现已准备好进行客户端连接。这是一条信息性消息;无需用户执行任何操作。
答案1
我使用“Microsoft Network Monitor 3.4”实用程序而不是 wireshark 来检查流量。这个实用程序向我显示了 TLS 数据包。我不确定 wireshark 怎么了,为什么它不向我显示 TLS 数据包?我要在他们的 wiki 上发布一个问题。但目前,我假设我的加密正在运行。