keyStore vs trustStore--转载

原文:http://lukejin.iteye.com/blog/605634

今天有同事向我问起这两个概念,所以我就记录下。
首先我们得澄清一些概念。
一个web应用如果需要提供以https的方式访问的服务的话,我们需要一个数字证书,这个证书的配置是在apache的配置文件或者其他web容器的配置文件中进行配置的。当然这个可以保存在keystore中。

我们自己的应用中通常所说的keystore或者truststore主要是针对于应用本身的需求来的。
keystore和truststore从其文件格式来看其实是一个东西,只是为了方便管理将其分开
keystore中一般保存的是我们的私钥,用来加解密或者为别人做签名


 
truststore中保存的是一些可信任的证书,主要是java在代码中访问某个https的时候对被访问者进行认证的,以确保其实可信任的。

truststore是必须的,如果我们没有显式的指定,那么java会默认指定为$JAVA_HOME/lib/security/cacerts 这个文件。

如果要指定的话,可以在java的参数中进行指定

Java代码  

  1. -Djavax.net.ssl.keyStore=clientKeys
  2. -Djavax.net.ssl.keyStorePassword=password
  3. -Djavax.net.ssl.trustStore=clientTrust
  4. -Djavax.net.ssl.trustStorePassword=password
时间: 2024-10-12 15:01:08

keyStore vs trustStore--转载的相关文章

使用keytool生成ssl密钥文件keystore和truststore

最近在研究Mina的开发,通信的时候需要数据加密,而且mina本身支持SSLFilter过滤器,所以可以采用SSL加密的方式对数据进行加密. 在进行加密之前,我们需要使用keytool(这个存在于C:\Program Files\Java\jdk1.7.0_65\bin目录下)产生创建keystore和truststore文件.接下来我会为你介绍生成密钥的方法. 1.打开cmd命令提示符(一定要以管理员身份运行,否则会出现keytool 错误:java.io.FileNotFoundExcept

Generating a KeyStore and TrustStore

Generating a KeyStore and TrustStore The following sections explain how to create both a KeyStore and a TrustStore (or import a certificate into an existing TrustStore such as the default Logical Host TrustStore in the location: <c:\JavaCAPS>\appser

KeyStore和TrustStore

笔者的这篇文章参考了http://docs.oracle.com/cd/E19509-01/820-3503/ggfgo/index.html KeyStore和TrustStore在很多HTTPS双向配置的文章中基本没有明白的,可能是因为当前的HTTPS网站太少,得不到重视,都是照着别人的抄一遍,然后运行一下. KeyStore是服务器的密钥存储库,存服务器的公钥私钥证书 TrustStore是服务器的信任密钥存储库,存CA公钥,但有一部分人存的是客户端证书集合,这样并不合适 下面是几个常见的

转/keystore和truststore的区别

keytool是java自带的工具用于产生密钥 keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息. truststore是放信任的证书的一个store. 那他们之间有啥关系和联系呢?在一个安全链接的模型中又各自起到什么作用呢? 其实我也没搞太清楚-_-b 我先把目前的理解记下来,以后再慢慢修正 这篇主要针对的是web应用,web应用一般是通过https,ssl来做客户端和server端的链接 就以单向验证为例,服务器端的app server是tomcat

Https:证书生成 .p12 .keyStore 和 .truststore文件理解

当我们需要SSL证书时,可以自动生成SSL证书,但是每个系统都申请一次证书会比较麻烦,所以用到了如下几个文件格式:   .p12(PKCS #12) 我们的每一个证书都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的系统设备使用,使设备不需要在重新申请开发和发布证书,就能使用. 注意:一般.p12文件是给与别人使用的,本机必须已经有一个带秘钥的证书才可以生成.p12文件 .keyStore(密钥库) keystore中一般保存的是我们的私钥,用来加解密或者为别

使用 JSSE 定制 SSL 连接的属性--转载

当数据在网络上传播的时候,通过使用 SSL 对其进行加密和保护,JSSE 为 Java 应用程序提供了安全的通信.在本篇有关该技术的高级研究中,Java 中间件开发人员 Ian Parkinson 深入研究了 JSSE API 较不为人知的方面,为您演示了如何围绕 SSL 的一些限制进行编程.您将学习如何动态地选择 KeyStore 和 TrustStore.放宽 JSSE 的密码匹配要求,以及构建您自己定制的 KeyManager 实现. JSSE(Java 安全套接字扩展,Java Secu

Android生成keystore方法

一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android Tools -> Export Signed Application Package... Next > 选择"Create new keystore"并且保存在一个目录下面(本例子保存在项目跟目录下) 输入密码,然后next 填写一些信息,填写的Alias 和 密码不要忘记了

杂谈X509证书, Java Keystore与Jetty

很多人对JSSE组成部分的Key Tool 工具不太明白,希望本文能有帮助 科班出身的同学应该学过课程“密码学”, 这门课详细解释了现代对称加密的算法原理, 当时学的我云里雾里. 直到现在使用过SSL加密才知道工程上用法是这样的, 老师讲的时候就不能带一点工程实践吗? 简单来说,对称加密体系就是我有一段需要加密的字符, 我用私钥加密之后变成了无意义的密文, 只有用配对的公钥才能对这个密文进行解密还原回来. 下图是个简单的示意,注意由于公私钥是配对的,一般给信息加密的人持有此密钥对. 这套机制可以

https 单向认证和双向认证配置

HTTPS 是我们开发中经常用到的通信加密技术,能有效保护我们网络访问中的安全,本文主要讲解单向 和 双向 https 的配置.关于https 的实现原理在这里我就不赘述了,附上阮一峰老师的关于https介绍几篇博客,有兴趣的童鞋可以看一看:图解SSL/TLS协议   数字签名是什么? 本文目录: 1.单向https配置 2.双向https配置 3.常见名词说明(转载) 1.单向https 配置 生成https证书命令: sudo keytool -genkey -keyalg RSA -dna