JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输。keytool是一个工具可以用来创建包含公钥和密钥的的keystore文件,并且利用keystore文件来创建只包含公钥的truststore文件。在本文中,我们学习如何通过下面的5步简单的创建truststore和keystore文件:
生成一个含有一个私钥的keystore文件
验证新生成的keystore而文件
导出凭证文件
把认凭证件导入到truststore文件
验证新创建的truststore文件
第一步 - 生成一个含有一个私钥的keystore文件
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
一旦执行了命令,你会被要求输入密码,这里我们输入“123456”。输入密码以后,需要输入一些key的详细信息,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/de7ae3ceedcc5231a79725fdc328a17f.png)
第二步 – 验证新生成的keystore而文件
keytool -list -v -keystore keystore.jks
执行上面的命令后,你会看到key的详细信息:
![](https://i-blog.csdnimg.cn/blog_migrate/e9c2fcf077e5ea4057f14f0d688ca4fa.png)
第三步 - 导出凭证文件
在这一步,你可以导出自我签署凭证或是Verisign或其他的认证机构的商业凭证的。这里只说导出自我签署的凭证:
通过执行下面的命令把自我签署的凭证保存到 “selfsignedcert.cer”文件
生成一个含有一个私钥的keystore文件
验证新生成的keystore而文件
导出凭证文件
把认凭证件导入到truststore文件
验证新创建的truststore文件
第一步 - 生成一个含有一个私钥的keystore文件
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的详细信息,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/de7ae3ceedcc5231a79725fdc328a17f.png)
第二步 – 验证新生成的keystore而文件
keytool -list -v -keystore keystore.jks
执行上面的命令后,你会看到key的详细信息:
![](https://i-blog.csdnimg.cn/blog_migrate/e9c2fcf077e5ea4057f14f0d688ca4fa.png)
第三步 - 导出凭证文件
在这一步,你可以导出自我签署凭证或是Verisign或其他的认证机构的商业凭证的。这里只说导出自我签署的凭证:
通过执行下面的命令把自我签署的凭证保存到 “selfsignedcert.cer”文件
- keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer
第四步 - 在客户端生成另一个keystore,然后运行keytool以-import参数导入第三步生成的cer文件,这样,客户端已经可以和服务端建立ssl链接了