setEncrypt 方法 (SQLServerDataSource)
设置一个布尔值,此值指示是否启用了 encrypt 属性 。
语法
public void setEncrypt(boolean encrypt)
参数
encrypt
如果在客户端和 SQL Server 之间启用传输层安全性 (TLS)(以前称为安全套接字层 (SSL))加密,则为 true 。 否则为 false。
备注
如果 encrypt 属性设置为 true,则在服务器已安装有证书的情况下,Microsoft JDBC Driver for SQL Server 将确保 SQL Server 对在客户端与服务器之间发送的所有数据使用 TLS 加密 。 默认值是 false秒。
JDBC 驱动程序在尝试建立 TLS 握手时,会检测运行它的 Java 虚拟机 (JVM)。
如果 encrypt 属性设置为 true,则 Microsoft JDBC Driver for SQL Server 将使用 JVM 的默认 JSSE 安全提供程序与 SQL Server 协商 TLS 加密 。 默认的安全提供程序可能不支持成功协商 TLS 加密所需的全部功能。 例如,默认安全提供程序可能不支持在 SQL Server TLS/SSL 证书中使用的 RSA 公钥的大小。 在这种情况下,默认的安全提供程序可能报错,此错误将导致 JDBC 驱动程序终止连接。 为了解决这一问题,请执行下列操作之一:
使用具有较小 RSA 公钥的服务器证书配置 SQL Server
在“<java-home>/lib/security/java.security”安全属性文件中将 JVM 配置为使用其他 JSSE 安全提供程序
使用其他 JVM
如果未指定 encrypt 属性或将此属性设置为 false,驱动程序将不会强制 SQL Server 支持 TLS 加密 。 如果 SQL Server 实例未配置为强制使用 TLS 加密,则将在不进行任何加密的情况下建立连接。 如果将 SQL Server 实例配置为强制使用 TLS 加密,则在经正确配置的 JVM 上运行时,Microsoft JDBC Driver for SQL Server 将自动启用 TLS 加密,否则连接将终止并且驱动程序将报错。