sql-server - 没有 SSL 证书的 SQL Server 2012 ForceEncryption?

标签 sql-server ssl encryption https wireshark

使用大约 2 年前一些顾问提供的信息,我们设置了一个 SQL Server 2012 机器以始终具有加密连接(至少我们是这么认为的)。一周前 SSL 证书过期了,一切都继续正常工作,这令人费解。

我们通过执行以下操作强制加密:

获取 SSL 证书并通过 MMC 将其安装在 SQL Server 上。 Explicit instructions这一步在这里。

  • 打开 SQL Server 配置管理器并展开左侧 Pane 中的 SQL Server 网络配置节点。
  • 右键单击 MSSQLServer 的协议(protocol)并选择属性。
  • 转到证书选项卡并从下拉列表中选择已安装的 SSL 证书。
  • 转到标志选项卡并将强制加密设置为是。

  • 现在,由于 SSL 证书已过期,当我访问上面的步骤 3 时,下拉列表中不再选择任何证书。但是,我把 WireShark在数据库服务器上并使用 SSMS 请求一些数据。 TDS(表格数据流)数据包仍然加密?当我将 WireShark 放在不同的数据库服务器上时,我将 ForceEncryption 设置为 NO,这些 TDS 数据包未按预期加密。

    所以我的问题是:
  • 如果证书过期,TDS 数据包如何仍然加密?
  • 即使证书有效,为什么我不必选择选项 > 加密连接来连接到我的加密数据库服务器?我认为设置 ForceEncryption=Yes 需要所有客户端连接在其连接字符串(或 SSMS 复选框)中指定 Encrypt?
  • 如果 Web API 是访问我的数据库的唯一方法,并且它们是通过 SSL 访问的,那么是否有必要加密 SQL 协议(protocol)?
  • 最佳答案

    1)如果证书过期,TDS 数据包如何仍然加密?

    您不需要有效的证书来加密,您仍然可以使用过期的证书进行加密。

    2)即使证书有效,为什么我不必选择选项>加密连接来连接到我的加密数据库服务器?我认为设置 ForceEncryption=Yes 需要所有客户端连接在其连接字符串(或 SSMS 复选框)中指定 Encrypt?

    不要在客户端和服务器上启用强制协议(protocol)加密选项,
    如果您在 SQL Server 上启用了强制加密,则无需在任何客户端执行此操作

    3)如果 Web API 是访问我的数据库的唯一方法,并且它们是通过 SSL 进行的,那么是否有必要加密 SQL 协议(protocol)?

    要启用 SSL,您需要在 SQL 服务器上安装证书,以便使用 SSL 访问 DB,您正在做同样的工作。

    谢谢

    关于sql-server - 没有 SSL 证书的 SQL Server 2012 ForceEncryption?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844566/

    相关文章:

    java - 从在 Tomcat 中运行的 Web 应用程序写入 Socket 时出现 NullPointerException

    javascript - JS 中的 RSACryptoServiceProvider 等效项

    sql - 删除名称错误的过程 (MSSQL)

    ssl - 2 路 SSL/TLS 配置

    ssl - 如何在docker中的应用程序上设置远程访问SSL JMX接口(interface)

    python - python 为 RSA 模块使用什么类型的填充?

    database - 在数据库中存储密码的首选可恢复方法

    SQL 在分隔符上拆分字符串并设置为新列

    SQL 按不相关的日期连接两个表

    javascript - Nodejs mssql和PreparedStatement,执行没有被调用