0
我使用以下代碼來生成的根CA:CA X.509是看到的Android作爲用戶證書
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證書
- 打印base64代碼證書
PEMWriter
- 複製輸出到
root.crt
文件。
的Windows將它識別爲CA證書,並顯示警告...這certifiacate不被信任......,但是當我試圖安裝該證書到Android這表明
包中包含:一個用戶證書
安裝時進行,但證書沒有出現在用戶信任列表
這是生成自簽名CA的正確方法嗎?
Android有兩個證書類別:系統和用戶。系統類別不可更改;用戶類別可以同時擁有證書和根證書。 – 2014-01-09 14:14:42