美文网首页Java 杂谈
Java Keytool生成数字证书/.cer/.p12文件

Java Keytool生成数字证书/.cer/.p12文件

作者: 编程小世界 | 来源:发表于2019-05-28 19:36 被阅读0次

    任何机构或者个人都可以申请数字证书,并使用由CA机构颁发的数字证书为自己的应用保驾护航。常用的两个证书管理工具:KeyTool,OpenSSL--->构建CSR(Certificate Signing Request,数字证书签发申请),交由CA机构签发,形成最终的数字证书。 最近用到p12文件,就记录一下如何使用jdk自带的keytool来创建p12文件

    创建私钥和证书

    1.打开cmd,切换到jdk的bin目录下

    2.输入命令

    keytool-genkeypair -alias serverkey -keyalg RSA -keysize2048-validity3650-keystore C:\Users\i343740\Desktop\p12test.keystore复制代码

    参数解释: storepass keystore 文件存储密码,不加这个参数会在后面要求你输入密码 keypass 私钥加解密密码 alias 实体别名(包括证书私钥) dname 证书个人信息 keyalg 采用公钥算法,默认是DSA,这里采用RSA keysize 密钥长度(DSA算法对应的默认算法是sha1withDSA,不支持2048长度,此时需指定RSA) validity 有效期 keystore 指定keystore文件储存位置

    3.命令行会要求你输入一些信息,这里只是试用,随意输一些就可以了

    Whatisyour firstandlastname?  [Unknown]:  xuWhatisthenameofyour organizationalunit?  [Unknown]:  SAPWhatisthenameofyour organization?  [Unknown]:  SAPWhatisthenameofyour CityorLocality?  [Unknown]:  ShangHaiWhatisthenameofyour StateorProvince?  [Unknown]:  ShangHaiWhatisthe two-letter country codeforthisunit?  [Unknown]:  CNIsCN=xu, OU=SAP, O=SAP, L=ShangHai, ST=ShangHai, C=CN correct?  [no]:  Y复制代码

    4.最后一行: 输入的密钥口令,这里因为我们在上面设置了一个密钥库的口令,因此这里的口令如果和上面设置的口令一样的话,就直接回车就好,如果两个口令不一样,那么我们可以输入新的口令,回车

    5.经过上述操作,秘钥库中已经创建了数字证书(没有经过CA认证),但不影响我们使用。我们可以将数字证书导出,发送给合作伙伴进行加密交互。

    查看keystore详情

    1.输入命令

    keytool-v -list -keystore C:\Users\i343740\Desktop\p12test.keystore复制代码

    可以看到keystore详情:

    Keystoretype:jksKeystoreprovider:SUNYour keystore contains1entryAliasname:serverkeyCreationdate:Sep18,2018Entrytype:PrivateKeyEntryCertificate chainlength:1Certificate[1]:Owner:CN=xu, OU=SAP, O=SAP, L=ShangHai, ST=ShangHai, C=CNIssuer:CN=xu, OU=SAP, O=SAP, L=ShangHai, ST=ShangHai, C=CNSerialnumber:68a01736Validfrom:Tue Sep1815:29:16CST2018until:Fri Sep1515:29:16CST2028Certificatefingerprints:        MD5:6D:02:83:77:1D:8F:80:4A:7E:71:10:E5:D1:F7:DA:A1        SHA1:50:A7:46:DE:BC:9E:0E:22:AC:AD:85:63:3D:29:FB:FF:75:66:55:3E        SHA256:78:C4:65:71:A2:54:2B:56:2E:7B:8F:16:7D:EB:53:46:4E:9C:0C:AF:55:F8:3E:0C:37:FC:CD:A6:8C:04:9E:84Signature algorithmname:SHA256withRSASubject Public KeyAlgorithm:2048-bit RSA keyVersion:3......(还有一些)复制代码

    导出本地证书(.cer)

    1.输入命令

    keytool -exportcert -keystore  C:\Users\i343740\Desktop\p12test.keystore -fileC:\Users\i343740\Desktop\p12test.cer -aliasserverkey复制代码

    参数解释: -export 表示证书导出操作 -keystore 指定秘钥库文件 -file 指定导出文件路径 -storepass 输入密码 -rfc 指定以Base64编码格式输出

    打印数字证书

    1.输入命令

    Keytool-printcert -file C:\Users\i343740\Desktop\p12test.cer复制代码

    将.cer格式的证书转换为p12证书

    1.输入命令

    keytool-importkeystore-srckeystoreC:\Users\i343740\Desktop\p12test.keystore-destkeystoreC:\Users\i343740\Desktop\p12test.p12-srcaliasserverkey-destaliasserverkey-srcstoretypejks-deststoretypepkcs12-noprompt复制代码

    2.输入目标密钥库口令和源密钥库口令即可(目标密钥库口令指的是我们要为.p12证书设置的口令,而源密钥库口令则指的是我们最初为.cer证书设置的密钥库口令)

    P12的两个命令:

    生成证书:

    keytool-genkey -v -aliasclient -keyalgRSA-storetypePKCS12-keystoreC:\Users\i343740\Desktop\p12test.p12复制代码

    导出证书:

    keytool -export-aliasclient -keystore  C:\Users\i343740\Desktop\p12test.p12-storetype PKCS12 -storepass123456-rfc -fileC:\Users\i343740\Desktop\p12test.cer复制代码

    我自己是一个从事了6年的Java全栈工程师,最近整理了一套适合2019年学习的Java\大数据资料,从基础的Java、大数据面向对象到进阶的框架知识都有整理哦,可以来我的主页免费领取哦。

    相关文章

      网友评论

        本文标题:Java Keytool生成数字证书/.cer/.p12文件

        本文链接:https://www.haomeiwen.com/subject/ccljtctx.html