ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android ssl证书生成

2019-03-29 09:55:11  阅读:308  来源: 互联网

标签:java 证书 ssl cert kp new android security


Android 的csr证书及p12证书的生成以及导入秘钥库

Android 鉴权证书问题

前一段时间公司要做关于ssl方面的模块,于是总结一下,直接上代码

写的不好,如果有错误的地方还请多指教

生成csr请求证书:
Security.insertProviderAt (new BouncyCastleProvider (), 1);
X509Name dn = onSubject();
KeyPairGenerator keyGen = KeyPairGenerator.getInstance (“RSA”);
keyGen.initialize (2048);
kp = keyGen.generateKeyPair ();
PKCS10CertificationRequest p10 = new PKCS10CertificationRequest (“SHA1WithRSA”, dn, kp.getPublic (),
new DERSet (), kp.getPrivate ());

        byte[] der = p10.getEncoded ();
        String code = "-----BEGIN CERTIFICATE REQUEST-----\n";
        code += getStringByEnter(64, new String (Base64.encode (der)));
        code += "\n-----END CERTIFICATE REQUEST-----\n";
        CertificationRequestInfo csrinfo = p10
                .getCertificationRequestInfo ();

对code内容需要做base64格式,如果超出64位进行换行,接下来是请求服务进行加签,这里不在多说

生成p12证书,内部包含私钥,二级证书和签名证书

PEMReader reader = new PEMReader (new FileReader (signFilePath));
java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate) reader.readObject();

            PEMReader readerMid = new PEMReader (new FileReader (signCaFilePath));
            java.security.cert.X509Certificate certMid = (java.security.cert.X509Certificate) readerMid.readObject();

            KeyStore ks = KeyStore.getInstance("PKCS12", "SC");
            ks.load(null, null);

            java.security.cert.Certificate[] chain = new java.security.cert.Certificate[2];
            chain[0] = cert;chain[1] = certMid;
            此处涉及证书链,需要先导入证书在导入ca签名证书。。。,然后用跟证书进行校验
            if(kp != null)
                ks.setKeyEntry (alias, kp.getPrivate (),null, chain);

            FileOutputStream fOut = new FileOutputStream(p12FilePath);
            ks.store(fOut, pw.toCharArray());

将p12证书导入秘钥库
KeyStore store = KeyStore.getInstance (“PKCS12”);
FileInputStream is = new FileInputStream (cerPath);
store.load (is, cerPw.toCharArray ());
is.close ();

标签:java,证书,ssl,cert,kp,new,android,security
来源: https://blog.csdn.net/wangyang26391/article/details/88884225

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有