[英]Unable to make ACRA accept a self-signed certificate
ACRA設置了標准選項:
@ReportsCrashes(
formUri = "https://XXXXXXXXXX.php",
mode = ReportingInteractionMode.TOAST,
resToastText = R.string.str_acra_crash_report_info)
嘗試將服務器證書復制到資產並創建自定義KeyStore:
try {
KeyStore ksTrust = KeyStore.getInstance("BKS");
InputStream instream = new BufferedInputStream(getAssets().open("keystore.bks"));
ksTrust.load(instream, "ez24get".toCharArray());
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(this);
configurationBuilder.setKeyStore(ksTrust);
final ACRAConfiguration config = configurationBuilder.build();
ACRA.init(this, config);
} catch (KeyStoreException | IOException | NoSuchAlgorithmException | CertificateException e) {
e.printStackTrace();
}
或另一種方式:
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = new BufferedInputStream(getAssets().open("ssl-cert-snakeoil.pem"));
Certificate ca = cf.generateCertificate(caInput);
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
不幸的是,經過數小時的測試,仍然沒有運氣,仍然出現了異常:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
有什么提示嗎?
編輯:使用CA:TRUE創建了另一個證書(標准ssl-cert-snakeoil.pem具有CA:FALSE),但是仍然沒有運氣。
編輯2:所做的證書應為:主要CA證書。 +服務器證書,但仍然相同。
@Matthew,您將需要使用ACRA主管的負責人,因為它已添加了https://github.com/ACRA/acra/pull/388拉取請求。
我們可能會在一周左右的時間內發布另一個版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.