簡體   English   中英

無法使ACRA接受自簽名證書

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM