「java查看csr」java调用链

博主:adminadmin 2022-11-25 01:47:07 58

今天给各位分享java查看csr的知识,其中也会对java调用链进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么将csr文件中的私钥提取出来

java.security.cert.CertificateFactory; java.security.cert.X509Certificate; 下载API文档,好好看看这两个类的说明。 如果PEM是BASE64格式的文件,则先转换成二进制。

java 怎么验证文件为数字签名认证文件

1)从密钥库中读取CA的证书

FileInputStream in=new FileInputStream(".keystore");

KeyStore ks=KeyStore.getInstance("JKS");

ks.load(in,storepass.toCharArray());

java.security.cert.Certificate c1=ks.getCertificate("caroot");

(2)从密钥库中读取CA的私钥

PrivateKey caprk=(PrivateKey)ks.getKey(alias,cakeypass.toCharArray());

(3)从CA的证书中提取签发者的信息

byte[] encod1=c1.getEncoded(); 提取CA证书的编码

X509CertImpl cimp1=new X509CertImpl(encod1); 用该编码创建X509CertImpl类型对象

X509CertInfo cinfo1=(X509CertInfo)cimp1.get(X509CertImpl.NAME+"."+X509CertImpl.INFO); 获取X509CertInfo对象

X500Name issuer=(X500Name)cinfo1.get(X509CertInfo.SUBJECT+"."+CertificateIssuerName.DN_NAME); 获取X509Name类型的签发者信息

(4)获取待签发的证书

CertificateFactory cf=CertificateFactory.getInstance("X.509");

FileInputStream in2=new FileInputStream("user.csr");

java.security.cert.Certificate c2=cf.generateCertificate(in);

(5)从待签发的证书中提取证书信息

byte [] encod2=c2.getEncoded();

X509CertImpl cimp2=new X509CertImpl(encod2); 用该编码创建X509CertImpl类型对象

X509CertInfo cinfo2=(X509CertInfo)cimp2.get(X509CertImpl.NAME+"."+X509CertImpl.INFO); 获取X509CertInfo对象

(6)设置新证书有效期

Date begindate=new Date(); 获取当前时间

Date enddate=new Date(begindate.getTime()+3000*24*60*60*1000L); 有效期为3000天

CertificateValidity cv=new CertificateValidity(begindate,enddate); 创建对象

cinfo2.set(X509CertInfo.VALIDITY,cv); 设置有效期

(7)设置新证书序列号

int sn=(int)(begindate.getTime()/1000); 以当前时间为序列号

CertificateSerialNumber csn=new CertificateSerialNumber(sn);

cinfo2.set(X509CertInfo.SERIAL_NUMBER,csn);

(8)设置新证书签发者

cinfo2.set(X509CertInfo.ISSUER+"."+CertificateIssuerName.DN_NAME,issuer);应用第三步的结果

(9)设置新证书签名算法信息

AlgorithmId algorithm=new AlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);

cinfo2.set(CertificateAlgorithmId.NAME+"."+CertificateAlgorithmId.ALGORITHM,algorithm);

(10)创建证书并使用CA的私钥对其签名

X509CertImpl newcert=new X509CertImpl(cinfo2);

newcert.sign(caprk,"MD5WithRSA"); 使用CA私钥对其签名

(11)将新证书写入密钥库

ks.setCertificateEntry("lf_signed",newcert);

FileOutputStream out=new FileOutputStream("newstore");

ks.store(out,"newpass".toCharArray()); 这里是写入了新的密钥库,也可以使用第七条来增加条目

基于java的apns多线程消息推送终端是怎么处理内容的

1、首先是应用程序注册消息推送。

2、 IOS跟APNS Server要deviceToken。应用程序接受deviceToken。

3、应用程序将deviceToken发送给PUSH服务端程序。

4、 服务端程序向APNS服务发送消息。

5、APNS服务将消息发送给iPhone应用程序。

无论是iPhone客户端跟APNS,还是Provider和APNS都需要通过证书进行连接的。下面介绍一下所用到证书的制作。

一、CSR文件

1、生成Certificate Signing Request(CSR)

2、填写你的邮箱和常用名称,并选择保存到硬盘。

点击继续:这样就在本地生成了一个PushTest.certSigningRequest文件。

二、SSL certificate文件

1、用你付过费的帐号登录到iOS Provisioning Portal,并创建Certificates。

推送软件极光不错,极光推送搭建起一个高度稳定、可扩展的云端架构,极大地帮助移动应用开发者节约开发和维护的成本,轻松实现毫秒级的精准推送。

如何用java编程实现生成csr

public java.security.cert.Certificate certToX509Cert(X509Certificate cert) {

try {

CertificateFactory cf = new CertificateFactory();

InputStream is = new ByteArrayInputStream(cert.getEncoded());

Collection coll = cf.engineGenerateCertificates(is);

java.security.cert.Certificate jcrt = null;

Iterator it = coll.iterator();

if (it.hasNext()) {

jcrt = (java.security.cert.Certificate) it.next();

return jcrt;

}

} catch (CertificateEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (CertificateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

public int storeP12(String caCertPath, String certPath, String pemPath, String pemPassword,

String p12Path, String p12Password) {

KeyPair kp;

try {

kp = getPrivateKey(pemPath, pemPassword);

X509Certificate caCert = getCertificate(caCertPath);

X509Certificate cert = getCertificate(certPath);

java.security.cert.Certificate[] chain = new java.security.cert.Certificate[2];

chain[0] = certToX509Cert(cert);

chain[1] = certToX509Cert(caCert);

KeyStore ks = KeyStore.getInstance("PKCS12", "BC");

ks.load(null, null);

ks.setKeyEntry(parseCertDN(cert.getSubjectDN().getName(), "CN"),

kp.getPrivate(), null, chain);

FileOutputStream fOut = new FileOutputStream(p12Path);

ks.store(fOut, p12Password.toCharArray());

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return 0;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

}

}

blog.csdn.net/jinhill/article/details/17612273

java查看csr的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java调用链、java查看csr的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。