SSL请求trustStore的两种注册方式 (java/SQL Server)

52 篇文章 0 订阅
39 篇文章 0 订阅

(http://blog.csdn.net/fenglibing/article/details/16842543)


如果是要发起SSL请求,这个时候通常是需要指定trustStore的,当然如果你使用自签名那是不需要的(查看如何使用自签名,查看这篇文章 http://blog.csdn.net/fenglibing/article/details/16842527 )。

一种方式是通过在启动参数中指定,如下:

java -Djavax.net.ssl.trustStore=yourTruststore.jks -Djavax.net.ssl.trustStorePassword=123456 YourApp 

还是一种就是通过程序中指定Properties参数进行加载,不过一定要在请求发出之前进行加载,如下:

Properties systemProps = System.getProperties();  
systemProps.put( "javax.net.ssl.trustStore", "/path/to/yourTruststore.jks");  
systemProps.put( "javax.net.ssl.trustStorePassword", "trustStorePassword");  
System.setProperties(systemProps);  

如果trustStore没有密码,那以下两种加载方式的参数”javax.net.ssl.trustStorePassword”都是不需要输入的。


=============================================================================================================

(https://technet.microsoft.com/zh-cn/library/bb879943)

Microsoft JDBC Driver for SQL Server 或客户端必须验证服务器是正确的服务器,并且其证书是由客户端信任的证书颁发机构颁发的。为了验证服务器证书,在连接时必须提供信任材料。此外,服务器证书的颁发者必须是客户端信任的证书颁发机构。

本主题首先介绍了如何在客户端计算机中提供信任材料。然后,本主题介绍当私钥证书颁发机构颁发 SQL Server 实例的安全套接字层 (SSL) 证书时,如何将服务器证书导入到客户端计算机的信任存储区。

如果未指定 trustStore 属性或该属性设置为 null,则 Microsoft JDBC Driver for SQL Server 将依赖于基础 JVM 的安全提供程序,即 Java 安全套接字扩展 (SunJSSE)。SunJSSE 提供程序提供一个默认的 TrustManager,用于验证由 SQL Server 针对在信任存储区中提供的信任材料返回的 X.509 证书。

TrustManager 尝试以下列搜索顺序找到默认的 trustStore:

  • 如果定义了系统属性“javax.net.ssl.trustStore”,则 TrustManager 将试图使用由该系统属性指定的文件名来查找默认的 trustStore 文件。

  • 如果未指定“javax.net.ssl.trustStore”系统属性并且文件“<java 主文件夹>/lib/security/jssecacerts”存在,则使用该文件。

  • 如果文件“<java 主文件夹>/lib/security/cacerts”存在,则使用该文件。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值