我使用以下代码生成根CA:
public static X509Certificate buildRootCert(KeyPair keyPair)
throws Exception {
X509v1CertificateBuilder certBldr = new JcaX509v1CertificateBuilder(
new X500Name("CN=Root"),
BigInteger.valueOf(1),
new Date(System.currentTimeMillis()),
new Date(System.currentTimeMillis() + 1000 * 3600 * 24),
new X500Name("CN=Root"), keyPair.getPublic());
ContentSigner signer = new JcaContentSignerBuilder("SHA1withRSA")
.setProvider("BC").build(keyPair.getPrivate());
return new JcaX509CertificateConverter().setProvider("BC")
.getCertificate(certBldr.build(signer));
}
之后我还需要2个步骤来获得CA Cert
PEMWriter
root.crt
文件。Windows将其识别为CA证书并显示警告 ...此certifiacate不受信任... ,但当我尝试将此证书安装到Android时,它会显示
该软件包包含:一个用户证书
继续安装,但用户可信列表
中不存在证书这是生成自签名CA的正确方法吗?
答案 0 :(得分:-1)
我添加了基本约束,并开始将其识别为CA.