keytool是java自带的工具用于产生密钥

keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息。

truststore是放信任的证书的一个store.

那他们之间有啥关系和联系呢?在一个安全链接的模型中又各自起到什么作用呢?

其实我也没搞太清楚-_-b

我先把目前的理解记下来,以后再慢慢修正

这篇主要针对的是web应用,web应用一般是通过https,ssl来做客户端和server端的链接

就以单向验证为例,服务器端的app server是tomcat

目前比较常用(我感觉是简单)的安全方案是单向验证,也就是说,客户端IE会验证服务器端的身份。这需要在服务器端做一些配置。

1. 在命令行中通过使用keytool在keystore中生成一个key.

这里就有两个概念了,keystore和key

key,存放了数字证书(包括公钥和发布者的数字签名),以及私钥

keystore,可以认为是放key的一个仓库,以文件的形式存在系统中,默认是放在C:\Documents and Settings\user...\下,也可以在命令行中指定路径和文件名

2.将key以数字证书的形式从keystore中导出,数字证书(包括公钥和发布者的数字签名)

3.将数字证书导入到truststore,一般是tomcat所用的JAVA_HOME下的jre\lib\security\cacerts文件

其实,truststore和keystore的性质是一样的,都是存放key的一个仓库,区别在于,truststore里存放的是只包含公钥的数字证书,代表了可以信任的证书,而keystore是包含私钥的。但是具体应用还有待深入研究,这里我还不是非常清楚

4.配置tomcat下的server.xml里相应的ssl端口,这样客户端就可以通过https来访问server了

05-20 13:13