java怎么去获取证书文件的信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么去获取证书文件的信息相关的知识,希望对你有一定的参考价值。

参考技术A Java为安全应用提供了丰富的API,J2SDK1.4
的JSSE
(JavaTM
Secure
Socket
Extension)
包括javax.security.certificate包,并且提供对证书的操作方法,代码如下:
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.table.*;
import
java.security.cert.CertificateFactory;
import
java.security.cert.X509Certificate;
import
java.io.*;
public
class
CARead
extends
JPanel

private
String
CA_Name;
private
String
CA_ItemData[][]
=
new
String[9][2];
private
String[]
columnNames
=
"证书字段标记","内容"
;
public
CARead(String
CertName)

CA_Name=CertName;
/*
三个Panel用来显示证书内容*/
JTabbedPane
tabbedPane
=
new
JTabbedPane();
JPanel
panelNormal
=
new
JPanel();
tabbedPane.addTab("普通信息",
panelNormal);
JPanel
panelAll=new
JPanel();
panelAll.setLayout(new
BorderLayout());
tabbedPane.addTab("所有信息",panelAll);
JPanel
panelBase64=new
JPanel();
panelBase64.setLayout(new
BorderLayout());
tabbedPane.addTab("Base64编码信息",panelBase64);
/*
读取证书常规信息
*/
Read_Normal(panelNormal);
/*
读取证书文件字符串表示内容
*/
Read_Bin(panelAll);
/*
读取证原始Base64编码形式的证书文件
*/
Read_Raw(panelBase64);
tabbedPane.setSelectedIndex(0);
setLayout(new
GridLayout(1,
1));
add(tabbedPane);


定义证书信息的读取函数如下:
private
int
Read_Normal(JPanel
panel)
String
Field;
try
CertificateFactory
certificate_factory=CertificateFactory.getInstance("X.509");
FileInputStream
file_inputstream=new
FileInputStream(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();
final
JTable
table
=
new
JTable(CA_ItemData,
columnNames);
TableColumn
tc=null;
tc
=
table.getColumnModel().getColumn(1);
tc.setPreferredWidth(600);
panel.add(table);
catch(Exception
exception)
exception.printStackTrace();
return
-1;

return
0;

java 获取网站安全证书

(1)打开谷歌浏览器

 点击 小锁 图标

(2)

  点击   “  查看证书”

出现 

(3) 点击 详细信息 ,会出现  

 (4)  点击 复制到文件 ,出现证书窗口

,点击下一步 ,选择base64编码 , 下一步

(5)设置文件名,确定。 (注意 查看证书文件的存放地址)

以上是关于java怎么去获取证书文件的信息的主要内容,如果未能解决你的问题,请参考以下文章

怎么获得SSL证书?

阿里云购买的域名,买的ssl证书,怎么让证书有效?怎么配置证书到域名上面去

HTTPS证书是怎么申请的

windows服务器怎么安装ssl证书

Java 获取PDF数字签名证书信息

iis绑定ssl证书 只提供了crt文件无Key文件怎么办?