JAVA代码导出证书 证书导入jdk

如何用Java代码来把SSL的证书自动导入到Jav

下面这个Java类可以帮助我们做这个事情。同时我们还可以把这个帮助方法开发一个可视化的程序,这样就更加方便:

创新互联公司主营善右网站建设的网络公司,主营网站建设方案,成都App定制开发,善右h5小程序开发搭建,善右网站营销推广欢迎善右等地区企业咨询

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.security.KeyStore;import java.security.cert.CertificateFactory;import java.security.cert.X509Certificate;import java.util.List;import javax.naming.ldap.LdapName;import javax.naming.ldap.Rdn;import javax.security.auth.x500.X500Principal;public class KeyStoreHelper { public static void createTrustJKSKeyStore(final String originalTrustFolder, final String jksTrustStoreLocation, final String password) { File keyStoreFile = new File(jksTrustStoreLocation); if (!keyStoreFile.exists()) { try { KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); keystore.load(null, password.toCharArray()); File trustedFolder = new File(originalTrustFolder); File[] certs = trustedFolder.listFiles(); if (certs != null) { for (File cert : certs) { CertificateFactory factory = CertificateFactory.getInstance("X.509"); try { X509Certificate certificate = (X509Certificate) factory.generateCertificate(new FileInputStream(cert)); X500Principal principal = certificate.getSubjectX500Principal(); LdapName ldapDN = new LdapName(principal.getName()); ListRdn rdns = ldapDN.getRdns(); for (Rdn rdn : rdns) { String type = rdn.getType(); if (type.equals("CN")) { keystore.setCertificateEntry((String) rdn.getValue(),certificate);break; } } } catch (Exception ex) { continue; } } } FileOutputStream fos = new FileOutputStream(jksTrustStoreLocation); keystore.store(fos, password.toCharArray()); fos.close(); } catch (Exception exp) { } } } /** * @param args */ public static void main(String[] args) { KeyStoreHelper.createTrustJKSKeyStore("D:\\cacerts", "D:\\cacerts\\test.jks", "test123"); }}

如何把安全证书导入到java中的cacerts证书库

每一步:进入某个开头的网站,把要导入的证书下载过来,

在该网页上右键 属性 点击"证书"

再点击上面的"详细信息"切换栏

再点击右下角那个"复制到文件"的按钮

就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。

例如:保存为abc.cer,放在C盘下

第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?

方法如下

假设你的jdk安装在C:\jdk1.5这个目录,

开始 运行 输入cmd 进入dos命令行

再用cd进入到C:\jdk1.5\jre\lib\security这个目录下

敲入如下命令回车执行

keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer -trustcacerts

此时命令行会提示你输入cacerts证书库的密码,

你敲入changeit就行了,这是java中cacerts证书库的默认密码,

你自已也可以修改的。

ok,大功告成!

以后更新时,先删除原来的证书,然后导入新的证书

keytool -list -keystore cacerts

keytool -delete -alias akazam_email -keystore cacerts

keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts

如何用java自带的工具生成证书

一、keytool的概念

keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe,如下图所示:

二、keytool的用法

三、创建证书

创建证书主要是使用" -genkeypair",该命令的可用参数如下:

范例:生成一个名称为test1的证书

Cmd代码

1 keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"

功能:

创建一个别名为test1的证书,该证书存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。

参数说明:

-genkeypair:生成一对非对称密钥;

-alias:指定密钥对的别名,该别名是公开的;

-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;

-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件

注意:

1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等

2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填

执行完上述命令后,在操作系统的用户目录下生成了一个"test.keystore"的文件,如下图所示:

四、查看密钥库里面的证书

范例:查看test.keystore这个密钥库里面的所有证书

Cmd代码

1 keytool -list -keystore test.keystore

五、导出到证书文件

范例:将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中

Cmd代码

1 keytool -export -alias test1 -file test.crt -keystore test.keystore

运行结果:在操作系统的用户目录(gacl)下生成了一个"test.crt"的文件,如下图所示:

六、导入证书

范例:将证书文件test.crt导入到名为test_cacerts的证书库中

Cmd代码:

1 keytool -import -keystore test_cacerts -file test.crt

七、查看证书信息

范例:查看证书文件test.crt的信息

Cmd代码:

1 keytool -printcert -file "test.crt"

八、删除密钥库中的条目

范例:删除密钥库test.keystore中别名为test1的证书条目

Cmd代码:

1 keytool -delete -keystore test.keystore -alias test1

九、修改证书条目的口令

范例:将密钥库test.keystore中别名为test2的证书条目的密码修改为xdp123456

Cmd代码:

1 keytool -keypasswd -alias test2 -keystore test.keystore

JAVA 如何生成证书

下面产生一个自签证书。安装完J2SDK(这里用的是J2SDK1.4)后,在J2SDK安装目录的bin目录下,有一个keytool的可执行程序。利用keytool产生自签证书的步骤如下:

第一步,用-genkey命令选项,产生公私密钥对。在控制台界面输入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。这里的-alias表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg是产生公私钥对所用的算法,这里是RSA;-keysize定义密钥的长度;-sigalg是签名算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。接下来,系统会提示进行一些输入:

输入keystore密码: abc123

您的名字与姓氏是什么?

[Unknown]: Li

您的组织单位名称是什么?

nbs

问题的其他解决办法参考 :

;t=JAVA+


当前文章:JAVA代码导出证书 证书导入jdk
文章来源:http://bzwzjz.com/article/ddjhsed.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 重庆网站建设 网站建设公司 网站设计 网站制作 网站建设 响应式网站设计 营销型网站建设 成都网站建设 成都网站建设 网站建设 成都网站建设 成都网站建设 网站建设方案 重庆企业网站建设 手机网站制作 成都网站建设公司 成都网站设计 广安网站设计 梓潼网站设计 重庆网站制作 成都网站建设公司 成都网站设计