jdk_keytool

最近在学习ws 的时候,学到了一个认证和授权,在我们互联网访问的时候,有些内容不想让别人发现,

就需要我们对内容进行访问控制,也就遇到了认证和授权,于是就接触到了keytool这个工具

keytool 这个工具是jdk提供的工具

Java SE Tools Reference 这是jdk的官方文档

JDK 中创建和管理证书的工具是 keytool 。 keytool 是一个功能强大的安全工具,它不仅仅只是用来创建和管理证书,还可以用来创建和管理对称性加密算法需要用到的密钥,还可以用自己的证书给别人签发证书(类似 CA 的工作),还可以导入别人发布的证书。 keytool 使用 keystore 存储密钥和证书,在一个 keystore 中可以存储多个条目,访问 keystore 和访问 keystore 中的条目均需要密码。

首先了解下keytool这个工具有哪些功能,或者说能帮助我们干什么

直接上图

基本上所有命令都有的 -help参数,就可以得知命令有哪些操作

我们这里想要做什么呢,就是通过keytool 来生成一对公钥和私钥,私钥是用来自己进行签名,公钥是用来验签

就形成了一个安全的数字签名呢

那么如何操作

数字签名是一组操作

离不开这个命令,于是我们再看下这个命令的帮助

生成密钥对,然后针对参数,来给定值

证书是给别人用的不是自己用的,这里再来看一下导出证书的详细参数

有了导出就有导入

一个基本的流程就完了,

下面给出这次生成公钥私钥的详细command

 1 @echo of
 2 keytool -genkeypair -alias server -keyalg RSA -dname "cn=server" -keypass serverpass -keystore server_store.jks -storepass storepass
 3 
 4 keytool -exportcert -alias server -file server_key.rsa -keystore server_store.jks -storepass storepass
 5 
 6 keytool -importcert -alias server -file server_key.rsa -keystore client_store.jks -storepass storepass -noprompt 
 7 
 8 del server_key.rsa
 9 
10 keytool -genkeypair -alias client -keyalg RSA -dname "cn=client" -keypass clientpass -keystore client_store.jks -storepass storepass
11 
12 keytool -exportcert -alias client -file client_key.rsa -keystore client_store.jks -storepass storepass
13 
14 keytool -importcert -alias client -file client_key.rsa -keystore server_store.jks -storepass storepass -noprompt 
15 
16 del client_key.rsa

 结论,需要官方提供的东西都具有很好地学习价值,一个help 里面藏着巨大玄机,给自己加油!!!

原文地址:https://www.cnblogs.com/obesityspace/p/7057623.html