Ⅰ 如何用Java读取使用证书
Java为安全应用提供了丰富的API,J2SDK1.4 的JSSE (JavaTM Secure Socket Extension) 包括javax.security.certificate包,并且提供对证书的操作方法,代码如下:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.table.*;
importjava.security.cert.CertificateFactory;
importjava.security.cert.X509Certificate;
importjava.io.*;
{
privateStringCA_Name;
privateStringCA_ItemData[][]=newString[9][2];
privateString[]columnNames={"证书字段标记","内容"};
publicCARead(StringCertName){
CA_Name=CertName;
/*三个Panel用来显示证书内容*/
JTabbedPanetabbedPane=newJTabbedPane();
JPanelpanelNormal=newJPanel();
tabbedPane.addTab("普通信息",panelNormal);
JPanelpanelAll=newJPanel();
panelAll.setLayout(newBorderLayout());
tabbedPane.addTab("所有信息",panelAll);
JPanelpanelBase64=newJPanel();
panelBase64.setLayout(newBorderLayout());
tabbedPane.addTab("Base64编码信息",panelBase64);
/*读取证书常规信息*/
Read_Normal(panelNormal);
/*读取证书文件字符串表示内容*/
Read_Bin(panelAll);
/*读取证原始Base64编码形式的证书文件*/
Read_Raw(panelBase64);
tabbedPane.setSelectedIndex(0);
setLayout(newGridLayout(1,1));
add(tabbedPane);
}
}
定义证书信息的读取函数如下:
privateintRead_Normal(JPanelpanel){
StringField;
try{
CertificateFactorycertificate_factory=CertificateFactory.getInstance("X.509");
FileInputStreamfile_inputstream=newFileInputStream(CA_Name);
X509Certificate
x509certificate=(X509Certificate)certificate_factory.generateCertificate
(file_inputstream);
Field=x509certificate.getType();
CA_ItemData[0][0]="类型";
CA_ItemData[0][1]=Field;
Field=Integer.toString(x509certificate.getVersion());
CA_ItemData[1][0]="版本";
CA_ItemData[1][1]=Field;
Field=x509certificate.getSubjectDN().getName();
CA_ItemData[2][0]="标题";
CA_ItemData[2][1]=Field;
/*以下类似,这里省略
Field=x509certificate.getNotBefore().toString();得到开始有效日期
Field=x509certificate.getNotAfter().toString();得到截止日期
Field=x509certificate.getSerialNumber().toString(16);得到序列号
Field=x509certificate.getIssuerDN().getName();得到发行者名
Field=x509certificate.getSigAlgName();得到签名算法
Field=x509certificate.getPublicKey().getAlgorithm();得到公钥算法*/
file_inputstream.close();
finalJTabletable=newJTable(CA_ItemData,columnNames);
TableColumntc=null;
tc=table.getColumnModel().getColumn(1);
tc.setPreferredWidth(600);
panel.add(table);
}catch(Exceptionexception){
exception.printStackTrace();
return-1;
}
return0;
}
Ⅱ Java哪些证书好
软件设计师、SUM认证、oracle认证、计算机二级java。
其中软件设计师可以在校期间到教务处报名参加,分为上午和下午场,每门通过60分才算通过。
Ⅲ Java方面有什么证书
SCJP相比其他的证书要好考的多,不过就是报名费太贵,你还可以去考程序员,中级程序员,高级工程师等,这些比较难考,可报名非相对比较低。
Ⅳ Java可以考哪些含金量高的证书
SCJP是提供的针对J2SE的两项认证之一,另一个是SCJD。CJP主要考察开发人员掌握Java的基本知识和语法,包括数据库连接、Swing、I/O、网络编程等知识。需要有扎实的基础知识才可以顺利通过。
Ⅳ 在java中使用安全证书的问题
在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢?
其实很简单,方法如下:
每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来,
在该网页上右键 >> 属性>> 点击"证书">>
再点击上面的"详细信息"切换栏 >>
再点击右下角那个"复制到文件"的按钮
就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。
例如:保存为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
此时命令行会提示你输入cacerts证书库的密码,
你敲入changeit就行了,这是java中cacerts证书库的默认密码,
你自已也可以修改的。
导入后用-list查看(没有使用-alias指定别名,所以是mykey),其中md5会和证书的md5对应上。
mykey, 2012-10-26, trustedCertEntry,
认证指纹 (MD5): 8D:A2:89:9A:E4:17:07:0B:BD:B0:0C:36:11:39:D0:3D
ok,大功告成!
以后更新时,先删除原来的证书,然后导入新的证书
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts
自定义文件和密码路径,还没有验证:
Define the TrustStore using the JAVA_OPTS variable on the Stash Server:
You will have to do the following:
On Windows:
JAVA_OPTS = -Djavax.net.ssl.trustStore="%JAVA_HOME%\jre\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
On Linux:
JAVA_OPTS = -Djavax.net.ssl.trustStore="$JAVA_HOME/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
(info) On my local instance trustStore password is changeit so I belive, if you didn´t changed it, your is changeit as well.
tomcat、junit运行时会从默认路径加载cacerts文件,如果main函数直接运行需要指定javax.net.ssl.trustStore文件路径,比如:
java -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -jar XXX.jar &
Ⅵ win7 JAVA无法验证证书怎么解决
你的问题是不是"由于无法验证发行者,所以windows已经阻止此软件"如要安装未签名的activex控件,按如下步骤:1、打开Internet Explorer---菜单栏点“工具”---Internet选项--安全---自定义级别---安全设置---“ActiveX控件和插件下”的第5个“下载未签名的ActiveX控件”选择“提示”---确定!刷新您要安装的页面即可(因为使用的软件没有通过微软的徽标认证,在SP2中默认是不允许安装这样的程序的,解决方法为开始-控制面板-系统-硬件。其中在驱动程序项里有有个“驱动程序签名”的选项,点开后。选第一项:忽略—安装软件,不用征求我的意见。)2、打开Internet Explorer---菜单栏点“工具”---Internet选项--安全---自定义级别---把里面所有禁用的全部改为启用。3、打开Internet Explorer---菜单栏点“工具”---Internet选项---高级选项里面选择"允许运行和安装软件,即使签名无效”4、打开Internet Explorer---菜单栏点“工具”---Internet选项--安全---受信任的站点---把该网站添加进去(注意把https改为http)
Ⅶ 在java中怎么验证ssl证书的有效性
JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问。但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点。
Ⅷ 用java怎么实现CA颁发的数字证书的认证功能
PKI 目前使用最多的非对称算法是 RSA。对于基于 RSA 的 PKI 而言,CA 应有一对 RSA 的公私钥对,私钥是 CA 的生命内,严格保密,而容公钥则发布给使用方。CA 签发一张证书的话,主要是使用 CA 的 RSA 私钥对证书进行签名,并将签名结果保存在证书当中。使用者通过 CA 发布的公钥来验证证书中的签名值,就可以确定该证书是否是由该 CA 签发的。自己要做的就是从证书中提取签名数据和用于签名的原始数据,再使用 CA 的公钥验证这个签名就可以了。
Ⅸ 什么是Java认证
JAVA,总的来说就是编程的一种,考jave当然是需要你有过硬的JAVA功底,掌握Java语言的回特点,实现机制和体系答结构。 2. 掌握Java语言中面向对象的特性。 3. 掌握Java语言提供的数据类型和结构。 4. 掌握Java语言编程的基本技术。 5. 会编写Java用户界面程序。 6. 会编写Java简单应用程序。 7. 会编写Java小应用程序(Applet)。 8. 了解Java的应用,搞懂这些,一定会过,JAVA认证,就是JAVA工程师证。
Ⅹ java程序利用根证书验证X509用户证书是否有效
楼上答主说的其实没错,只是描述的不太清楚。比如说有两个X509Certificate类型的证书对象版caCert和userCert。
//获取CA根证书中权的公钥
PublicKey publicKey = caCert.getPublicKey();
//使用用户证书验证根证书的公钥,如果验证通过说明这个用户证书是这个根证书签发的,验证不过就不是这个根证书签发的。
userCert.verify(publicKey);