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 = 0; 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天
                "36500",
                "-keysize",//     指定密钥长度
                "1024",
                "-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信息所需的密码)
                "123456",
                "-keypass",// 指定别名条目的密码(私钥的密码)
                "123456",
                "-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",// 指定密钥库的密码
                "123456"

        };
        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

时间: 2024-10-13 09:40:32

java 调用 keytool 生成keystore 和 cer 证书的相关文章

java调用wkhtmltopdf生成pdf文件,美观,省事

最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多东西,样式,字体等等,好麻烦,毕竟博主这么懒的人,哈哈.-------jstarseven 言归正传: java生成pdf文件,方式很多,以上提到的哪几种方式具体可以参考这篇文章<讲解很详细>:http://blog.csdn.net/ouyhong123/article/details/2640

机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测

机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法: 1.在Java语言中,通过python的解释器执行python代码,简单来说就是在java中通过python解释器对象,传入写好的python代码,进行执行,这样的方式运行的效率非常低,而且存在很多python包无法使用的情况,只适合做简单的python代码的运行,并不推荐使用. 2.通过PMML

使用keytool 生成证书

keytool 工具介绍 keytool 是java 用于管理密钥和证书的工具,其功能包括: 1 创建并管理密钥 2 创建并管理证书 3 作为CA 为证书授权 4 导入导出证书 keytool 采用keystore来存储密钥及证书,其中可包括私钥.信任证书: keystore 文件使用 JKS格式,带密钥存储:其中私钥的存储也有独立的密码: 一.生成 私钥 keytool -genkey -alias serverkey -keystore server.keystore 按提示 输入keyst

使用jdk中keytool生成证书

-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥.私钥和证书 -alias       产生别名-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中-keyalg      指定密钥的算法    -validity    指定创建的证书有效期多少天-keysize     指定密钥长度-storepass   指定密钥库的密码-keypass     指定别名条目

jks cer 证书生成

jks是java keystore的简称,是java的数字证书库,查看证书私钥需要密码,避免私钥一名文的形式出现在代码中 情景一:客户端签名,服务器验签,确定是否是自己人 使用keytool生成jks,keytool工具在java->jdk->bin目录下,使用命令行,ps:红色部分请自行替换 keytool -genkey -alias 别名 -keyalg RSA -keystore 文件名.jks 经过一番复杂的输入,生成的jks文件在桌面->我的文档根目录下,这个jks里包含了自

java https tomcat 单双认证(含证书生成和代码实现) 原创转载请备注,谢谢O(∩_∩)O

server: apache-tomcat-6.0.44 jdk1.7.0_79client: jdk1.7.0_79 jks是JAVA的keytools证书工具支持的证书私钥格式. pfx是微软支持的私钥格式. cer是证书的公钥. 生成: keytool -genkey -alias tbb -keyalg RSA -keystore D:\cert\tbb.keystore 模板: keytool -genkey -alias yushan -keypass yushan -keyalg

使用keytool生成ssl密钥文件keystore和truststore

最近在研究Mina的开发,通信的时候需要数据加密,而且mina本身支持SSLFilter过滤器,所以可以采用SSL加密的方式对数据进行加密. 在进行加密之前,我们需要使用keytool(这个存在于C:\Program Files\Java\jdk1.7.0_65\bin目录下)产生创建keystore和truststore文件.接下来我会为你介绍生成密钥的方法. 1.打开cmd命令提示符(一定要以管理员身份运行,否则会出现keytool 错误:java.io.FileNotFoundExcept

用keytool生成证书

1.证书查看与删除 查看是否已创建过同名的证书 keytool -list -v -alias ssotest -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit 删除已创建的证书 keytool -delete -aliasssotest -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit 以上

关于java keytool生成秘钥库随笔

1.设置java环境变量(忽略) 2.使用keytool生成秘钥库(我也不知道该如何称呼,有人称呼他为证书库,反正知道他是个库就行了)(以下         操作都是在dos下运行的,加-help来查看该命令的参数,比如说生成秘钥库的命令是keytool -genkey,可       以使用keytool -genkey -help来查看genkey的一些参数)  keytool  -genkey -alias test1 -keyalg RSA -keystore  e:/keystoreT