JAVA调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具,
keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,
包含两种数据:
密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
可信任的证书实体(trusted certificate entries)——只包含公钥
ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写
下面给出一个java 调用 keytool 生成keystore 和 cer 证书的例子测试:
public class ExportCertFormKeystore {
public void execCommand(String[] arstringCommand) {
for (int i = ; i < arstringCommand.length; i++) {
System.out.print(arstringCommand[i] + " ");
}
try {
Runtime.getRuntime().exec(arstringCommand);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void execCommand(String arstringCommand) {
try {
Runtime.getRuntime().exec(arstringCommand);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
/**
* 生成密钥
*/
public void genkey() {
String[] arstringCommand = new String[] {
"cmd ", "/k",
"start", // cmd Shell命令
"keytool",
"-genkey", // -genkey表示生成密钥
"-validity", // -validity指定证书有效期(单位:天),这里是36000天
"",
"-keysize",// 指定密钥长度
"",
"-alias", // -alias指定别名,这里是ss
"ss",
"-keyalg", // -keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))
"RSA",
"-keystore", // -keystore指定存储位置,这里是d:/demo.keystore
"d:/demo.keystore",
"-dname",// CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称),
// ST=(州或省份名称), C=(单位的两字母国家代码)"
"CN=(SS), OU=(SS), O=(SS), L=(BJ), ST=(BJ), C=(CN)",
"-storepass", // 指定密钥库的密码(获取keystore信息所需的密码)
"",
"-keypass",// 指定别名条目的密码(私钥的密码)
"",
"-v"// -v 显示密钥库中的证书详细信息
};
execCommand(arstringCommand);
}
/**
* 导出证书文件
*/
public void export() {
String[] arstringCommand = new String[] {
"cmd ", "/k",
"start", // cmd Shell命令
"keytool",
"-export", // - export指定为导出操作
"-keystore", // -keystore指定keystore文件,这里是d:/demo.keystore
"d:/demo.keystore",
"-alias", // -alias指定别名,这里是ss
"ss",
"-file",//-file指向导出路径
"d:/demo.cer",
"-storepass",// 指定密钥库的密码
""
};
execCommand(arstringCommand);
}
}
JUnit测试用例:
import org.junit.Test;
public class ExportCertFormKeystoreTest {
@Test
public void genkeyTest() {
//生成密钥测试
new ExportCertFormKeystore().genkey();
}
@Test
public void exportTest() {
//导出证书文件测试
new ExportCertFormKeystore().export();
}
}
运行测试用例之后,在D盘的根目录下面会生成两个文件:
demo.keystore
demo.cer
JAVA调用 keytool 生成keystore 和 cer 证书的更多相关文章
- java 调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据:密钥实体(K ...
- java调用wkhtmltopdf生成pdf文件,美观,省事
最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多 ...
- windows文本转语音 通过java 调用python 生成exe可执行文件一条龙
我已记不清 我失败过多少次 ,找过多少资料 ,但是功夫不负有心人 ,还是成功了. 所有资料和需要的语音模块的资料以放置在文章末尾, 有些是引用别人的博客的部分内容, 原文是在有道云笔记,所以没有图,请 ...
- java调用matlab生成exe文件
一.Matlab生成Java Package 1.在MATLAB的Command Window输入deploytool命令,选择Library Compiler. 2.在弹出的窗口选择Java Pac ...
- JAVA JDK keytool 生成数字证书
简介: 数字证书作为网络安全数据传输的凭证,web在传输时客户端(浏览器)和 服务端(服务器)先进行会话握手,在握手过程中服务端会验证客户端的是否已经在服务端做了认证,这是单向认证.如果是双向认证的话 ...
- keytool生成keystore
在密钥库中生成本地数字证书:需要提供身份.加密算法.有效期等信息:keytool指令如下,产生的本地证书后缀名为:*.keystore keytool -genkeypair -keyalg RSA ...
- 机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测
机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法: ...
- java调用c++生成的动态和静态库时遇到的问题
java.lang.UnsatisfiedLinkError: no jacob in java.library.path -Djava.library.path 关于java用jni调用 dll动态 ...
- [转载]java调用PageOffice生成word
一.在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jac ...
随机推荐
- Java中@Override的作用
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读:2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如 ...
- 第一篇博客 用笨办法学python-14 提示和传递
# 代码如下: usr_name = input("")script = input("")prompt = '> 'print("hi %s, ...
- window下搭建c开发环境(GNU环境的安装)
一.在windows平台上安装GNU环境 windows操作系统不自带GNU环境,如果需要开发跨平台的C语言程序,那么需要给windows安装GNU环境 windows下的两款GNU环境:MinGW和 ...
- SQL Server 2016中In-Memory OLTP继CTP3之后的新改进
SQL Server 2016中In-Memory OLTP继CTP3之后的新改进 转译自:https://blogs.msdn.microsoft.com/sqlserverstorageengin ...
- 安装mysql
查看已安装的mysql,并删除它们 rpm -qa|grep -i mysql rpm -e --nodeps filename 如果重装mysql,查找安装mysql产生的文件,并删除它们 find ...
- HDFS Client 设计实现解析
前面对 HDFS NameNode 和 DataNode 的架构设计实现要点做了介绍,本文对 HDFS 最后一个主要构成组件 Client 做进一步解析. 流式读取 HDFS Client 为客户端应 ...
- Azure Redis Cache
将于 2014 年 9 月 1 日停止Azure Shared Cache服务,因此你需要在该日期前迁移到 Azure Redis Cache.Azure Redis Cache包含以下两个层级的产品 ...
- AngularJS SPA Template For Visual Studio
单页面应用程序(SPA)[使用JavaScript.CSS和HTML强大的功能,可以构建一个单页面应用程序(SPAs)],它提供了丰富的用户体验页面.导航技术和AJAX提供必要的功能,而不用重新加载页 ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
- 女生的最爱,装饰品。WPF也有,Adorner。(上海晒衣服理念)
说到装饰,不由要说到女性. 去年过年回家给我妈买了周大福项链,很明显就感觉待遇就不一样了,即使这样,还是被一个阿姨说应该买更重点的.看来钱这种东西果然是多一点才好.虽然自己无所谓,但让家里人更开心也是 ...