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