最近在学习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 里面藏着巨大玄机,给自己加油!!!