用keytool创建Keystore和Truststore文件

[size=x-large]用keytool创建Keystore和Trustsotre文件[/size]

JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输。keytool是一个工具可以用来创建包含公钥和密钥的的keystore文件,并且利用keystore文件来创建只包含公钥的truststore文件。在本文中,我们学习如何通过下面的5步简单的创建truststore和keystore文件:

生成一个含有一个私钥的keystore文件
验证新生成的keystor而文件
导出凭证文件
把认凭证件导入到truststore文件
验证新创建的truststore文件

[size=medium]第一步 - 生成一个含有一个私钥的keystore文件[/size]

Java的Keytool工具可以把密钥和认证保存到keystore文件。 如果在windows上,keytool命令被放到Java的bin目录下(例如C:\Program Files\Java\jdk1.6.0_12)。如果是mac上是放在/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands目录下。
执行下列命令来生成keystore

keytool -genkeypair -alias certificatekey -keyalg RSA -validity 7 -keystore keystore.jks


一旦执行了命令,你会被要求输入密码,这里我们输入“123456”。输入密码以后,需要输入一些key的详细信息,如下图:

[img]http://dl2.iteye.com/upload/attachment/0085/6626/f4e54ca5-a1bd-3f56-81ba-c57c5380b357.png[/img]


[size=medium]第二步 – 验证新生成的keystor而文件[/size]

keytool -list -v -keystore keystore.jks

执行上面的命令后,你会看到key的详细信息:

[img]http://dl2.iteye.com/upload/attachment/0085/6628/7edf3470-544d-3eb4-a0ae-8c3cf5661270.png[/img]


[size=medium]第三步 - 导出凭证文件[/size]

在这一步,你可以导出自我签署凭证或是Verisign或其他的认证机构的商业凭证的。这里只说导出自我签署的凭证:

通过执行下面的命令把自我签署的凭证保存到 “selfsignedcert.cer”文件

keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer


执行上面的命令,会要求你输入密码,就是上面生成keystore的输入的密码“123456”,

[img]http://dl2.iteye.com/upload/attachment/0085/6630/f303d58a-260b-3c85-89dd-dafabc7a54c6.png[/img]

生成的cer文件内容如下:

[img]http://dl2.iteye.com/upload/attachment/0085/6636/e5ce943e-8b71-3d2e-bdb1-09314f98b182.png[/img]


[size=medium]第四步 – 把认凭证件导入到truststore文件[/size]
执行下面的命令

keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks


执行命令后,会要求输入密码,同样是keystore的密码“123456”。

[img]http://dl2.iteye.com/upload/attachment/0085/6632/d4904d4f-e1d6-3844-9e9e-e0cc7f55ae2a.png[/img]

[size=medium]
第五步 – 验证新创建的truststore文件
[/size]执行下面的命令

keytool -list -v -keystore truststore.jks


执行上面的命令会看到如下的内容

[img]http://dl2.iteye.com/upload/attachment/0085/6634/01ad0f20-e298-34b7-8343-0b8010faca73.png[/img]


参考连接:http://www.techbrainwave.com/?p=953

你可能感兴趣的:(Java,ssl)