【发布时间】: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