【问题标题】:SSL Connection to mssql from a Java Program从 Java 程序到 mssql 的 SSL 连接
【发布时间】:2013-12-26 11:56:54
【问题描述】:

如何使用自签名证书通过 java 程序实现与 mssql 服务器的 SSL 连接以进行测试?目前我已经尝试使用如下连接字符串进行连接:

String dbUrl = "jdbc:sqlserver://" + server + ":" + port
        + ";databaseName=" + database + ";user="+   username
                    + ";password=" + password
                    + ";encrypt="+true
                    + ";integratedSecurity="+true
                    + ";trustServerCertificate="+false
                    + ";hostNameInCertificate=?"
                    + ";trustStore=?;trustStorePassword=?";

我现在很困惑应该把什么放在“?”在上面的连接字符串中的位置。

我还可以通过以下方法从管理工作室连接 mssql:

  • 创建自签名证书:
  • 转到控制面板
  • 管理工具
  • IIS 管理器
  • 服务器证书
  • 然后在服务器证书上,在右侧面板上,单击创建自签名证书并提供友好名称。 > 好的。现在证书准备好了。

  • 打开MMC,在cmd中输入mmc

  • 添加/删除管理单元
  • 选择证书
  • 添加
  • 接下来,选择本地计算机,完成,确定
  • Expand Certificates, Personal, Certificates,我们可以看到最近添加的证书。
  • 选择证书,右键单击,所有任务,管理私钥
  • 添加 MSSQL 用户,添加授予读取权限。

  • 现在打开 SQL Server 配置管理器

  • SQL Server 网络配置、属性
  • 将强制加密设置为是,
  • 在证书选项卡中,选择最近添加的证书

  • 重新启动 SQL Server 服务。

  • 尝试加密连接到数据库并连接。

但是如何与java程序连接呢? trustStore 和 trustStorePassword 字段中应该保留什么?

工作环境:Windows 8,mssql server 2012

【问题讨论】:

    标签: java sql-server ssl ssl-certificate


    【解决方案1】:

    我确定您现在已经解决了这个问题!但如果其他人遇到同样的问题,请在此处解决: https://msdn.microsoft.com/en-us/library/bb879949(v=sql.110).aspx

    当 encrypt 属性设置为 true 并且 trustServerCertificate 属性设置为 true 时,Microsoft JDBC Driver for SQL Server 将不会验证 SQL Server SSL 证书。这通常是在测试环境中允许连接所必需的,例如 SQL Server 实例只有一个自签名证书的情况。

    String connectionUrl = 
    "jdbc:sqlserver://localhost:1433;" +
    "databaseName=AdventureWorks;integratedSecurity=true;" +
    "encrypt=true;trustServerCertificate=true";
    

    【讨论】:

    • 如果您将当前 Windows 用户配置为 SQL Server,integratedSecurity 将起作用。它将传递当前的 Windows 用户凭据,并且仅适用于 Windows。
    • 您能否进一步说明 IntegratedSecurity 是什么意思?
    • @SarahTammam 如果 IntegratedSecurity 设置为 true,它将使用您在 windows 中登录的用户连接到数据库
    猜你喜欢
    • 2014-12-09
    • 2021-05-10
    • 2013-12-22
    • 2016-11-26
    • 2018-12-28
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多