Java Security:keytool工具使用说明
2015-02-01 22:51
399 查看
Keytool用法说明
Keytool是一个key与cert的管理工具。使用keytool可以管理public key、private key,以及与key之相关的certificate。
View Code
上面程序执行结果:
打印出指定alias的信息,如果没有指定alias,则显示所有的。
下面的例子,就是打出了上面使用genkeypair生成的alias为mykey的key详情:
2.2 证书签名处理
这个过程涉及到3个命令:
certreq、gencert、importcert
1)机构A使用certreq生成一个证书签名请求文件(CSR certificate sign request),生成的文件就代表一个请求。
2)CA(证书认证中心)接收到这个请求后,经过处理(使用gencert),会生成一个证书或者证书链。
3)机构A接收到响应,将证书导入(importcert)到keystore中。
在说明这个处理之前,先使用genkeypair生成2个keystore文件:
把请求放到文件中:
官方学习资料:
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html
深入了解:
http://www.ibm.com/developerworks/cn/java/j-lo-socketkeytool/index.html?ca=drs
Keytool是一个key与cert的管理工具。使用keytool可以管理public key、private key,以及与key之相关的certificate。
1、command和option说明
1.1 command
使用keytool工具时,可以使用15种命令:package com.fjn.other.security; import java.io.File; import java.io.FileInputStream; import java.security.Key; import java.security.KeyStore; import java.security.PrivateKey; import java.security.PublicKey; import java.security.cert.Certificate; import java.security.interfaces.DSAPrivateKey; import java.util.Enumeration; import org.junit.Test; public class KeyPaireReader { public void read(String file, String password) throws Exception { FileInputStream fis = null; fis = new FileInputStream(new File(file)); KeyStore keystore = KeyStore.getInstance("JKS"); keystore.load(fis, password.toCharArray()); System.out.println(keystore.containsAlias("mykey")); Enumeration<String> aliases=keystore.aliases(); while(aliases.hasMoreElements()){ String alias = aliases.nextElement(); String createDate = keystore.getCreationDate(alias) .toLocaleString(); System.out.println("createDate: " + createDate); Key key = keystore.getKey(alias, password.toCharArray()); if (key != null && key instanceof PrivateKey) { if ("DSA".equals(key.getAlgorithm().toUpperCase())) { DSAPrivateKey pik = (DSAPrivateKey) key; System.out.println(pik.getX()); } } Certificate[] certs= keystore.getCertificateChain(alias); for (Certificate cert : certs) { PublicKey puk = cert.getPublicKey(); System.out.println(puk); } } } @Test public void test() throws Exception { read("D:\\keytooltest\\ca1.jks", "111111"); } }
View Code
上面程序执行结果:
list
-list {-alias alias} {-storetype storetype} {-keystore keystore} [-storepass storepass] {-providerName provider_name} {-providerClass provider_class_name {-providerArg provider_arg}} {-v | -rfc} {-protected} {-Jjavaoption}
打印出指定alias的信息,如果没有指定alias,则显示所有的。
下面的例子,就是打出了上面使用genkeypair生成的alias为mykey的key详情:
2.2 证书签名处理
这个过程涉及到3个命令:
certreq、gencert、importcert
1)机构A使用certreq生成一个证书签名请求文件(CSR certificate sign request),生成的文件就代表一个请求。
2)CA(证书认证中心)接收到这个请求后,经过处理(使用gencert),会生成一个证书或者证书链。
3)机构A接收到响应,将证书导入(importcert)到keystore中。
在说明这个处理之前,先使用genkeypair生成2个keystore文件:
keytool -genkeypair -alias ca1 -keystore D:\keytooltest\ca1.jks keytool -genkeypair -alias ca2 -keystore D:\keytooltest\ca2.jks
certreq
把请求放到文件中:
keytool -certreq -alias ca1 -keystore D:\keytooltest\ca1.jks -file D:\keytooltest\ca1_to_ca2.req |
gencert
-gencert {-rfc} {-infile infile} {-outfile outfile} {-alias alias} {-sigalg sigalg} {-dname dname} {-startdate startdate {-ext ext}* {-validity valDays} [-keypass keypass] {-keystore keystore} [-storepass storepass] {-storetype storetype} {-providername provider_name} {-providerClass provider_class_name {-providerArg provider_arg}} {-v} {-protected} {-Jjavaoption}
keytool -gencert -alias ca2 -infile D:\keytooltest\ca1_to_ca2.req -outfile D:\keytooltest\ca2_to_ca1.cert -keystore D:\keytooltest\ca2.jks
importcert
官方学习资料:
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html
深入了解:
http://www.ibm.com/developerworks/cn/java/j-lo-socketkeytool/index.html?ca=drs
相关文章推荐
- Java Security:keytool工具使用说明
- Java keytool工具的作用及使用方法--数字签名
- Java keytool工具的作用及使用方法
- java keytool证书工具使用小结【转】
- Java使用keytool工具导出RSA密钥证书及导出公钥文件
- java keytool证书工具使用小结
- Java keytool工具的作用及使用方法
- java keytool证书工具使用小结
- java keytool证书工具使用小结
- java keytool证书工具使用小结(转)
- sql2java:一个古老但稳定的轻量级的ORM工具的使用说明
- Java keytool工具的作用及使用方法
- java keytool证书工具使用小结
- java keytool证书工具使用小结
- java keytool证书工具使用小结
- java keytool证书工具使用小结
- Java keytool工具的作用及使用方法
- java keytool证书工具使用小结
- windows和Linux系统使用java keytool工具生成cas单点登录数字证书
- 使用Java自带的keytool工具生成RSA非对称密钥证书,并导出公钥文件