Android拒绝自签名CA证书
创始人
2024-10-08 15:01:38
0

Android设备默认情况下会拒绝使用经过自签名的CA证书,因此需要使用证书授权机构(CA)来签名证书。以下是使用Bouncy Castle库创建自签名证书和CA证书的示例代码:

第一步是创建CA证书和私钥。这里使用RSA算法和SHA256散列:

Security.addProvider(new BouncyCastleProvider());

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC");
keyPairGenerator.initialize(2048, new SecureRandom());

KeyPair caKeyPair = keyPairGenerator.generateKeyPair();

X509v3CertificateBuilder caCertBuilder =
    new JcaX509v3CertificateBuilder(new X500Name("CN=MyCA"), BigInteger.valueOf(1),
                                    new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000),
                                    new Date(System.currentTimeMillis() + 10 * 365 * 24 * 60 * 60 * 1000),
                                    new X500Name("CN=MyCA"), caKeyPair.getPublic());

ContentSigner signer =
    new JcaContentSignerBuilder("SHA256WithRSAEncryption").setProvider("BC")
        .build(caKeyPair.getPrivate());

X509Certificate caCert = new JcaX509CertificateConverter().setProvider("BC")
    .getCertificate(caCertBuilder.build(signer));

第二步是创建服务器证书和私钥,并将其用CA证书签名:

KeyPair serverKeyPair = keyPairGenerator.generateKeyPair();
X509v3CertificateBuilder serverCertBuilder =
    new JcaX509v3CertificateBuilder(caCert.getSubject(), BigInteger.valueOf(1),
                                    new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000),
                                    new Date(System.currentTimeMillis() + 10 * 365 * 24 * 60 * 60 * 1000),
                                    new X500Name("CN=MyServer"), serverKeyPair.getPublic());

signer = new JcaContentSignerBuilder("SHA256WithRSAEncryption").setProvider("BC")
    .build(caKeyPair.getPrivate());

X509Certificate serverCert = new Jca

相关内容

热门资讯

透视开挂!竞技联盟辅助插件(透... 透视开挂!竞技联盟辅助插件(透视)开挂辅助技巧(切实是有挂)-哔哩哔哩1、竞技联盟辅助插件透视辅助简...
透视ai!aapoker万能辅... 透视ai!aapoker万能辅助器,wepoker好友助力码,积累教程(一贯真的是有挂)-哔哩哔哩1...
透视系统!pokernow辅助... 透视系统!pokernow辅助控制(透视)开挂辅助器(切实真的有挂)-哔哩哔哩pokernow辅助控...
透视透视!佛手在线大菠萝技巧,... 透视透视!佛手在线大菠萝技巧,wejoker辅助软件价格,烘培教程(一贯是有挂)-哔哩哔哩1、任何佛...
透视开挂!werplan辅助软... 透视开挂!werplan辅助软件(透视)开挂辅助插件(一贯存在有挂)-哔哩哔哩1、werplan辅助...
透视有挂!来玩德州破解器,we... 透视有挂!来玩德州破解器,wepoker辅助器软件下载,经验教程(切实存在有挂)-哔哩哔哩1、完成w...
透视内置!智星菠萝有挂吗(透视... 透视内置!智星菠萝有挂吗(透视)开挂辅助软件(原来存在有挂)-哔哩哔哩1、每一步都需要思考,不同水平...
透视了解!hhpoker怎么开... 透视了解!hhpoker怎么开透视,wepoker买钻石有用吗,方案教程(切实存在有挂)-哔哩哔哩1...
透视测试!wepoker私局代... 透视测试!wepoker私局代打(透视)开挂辅助插件(本来是有挂)-哔哩哔哩1、金币登录送、破产送、...
透视安卓版!epoker底牌透... 透视安卓版!epoker底牌透视,aapoker怎么提高中牌率,练习教程(原来真的有挂)-哔哩哔哩1...