无法让 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)
尝试将服务器证书复制到资产并创建自定义密钥库:
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 拉取请求。
我们可能会在一周左右的时间内削减另一个版本。
ACRA 使用标准选项设置:
@ReportsCrashes(
formUri = "https://XXXXXXXXXX.php",
mode = ReportingInteractionMode.TOAST,
resToastText = R.string.str_acra_crash_report_info)
尝试将服务器证书复制到资产并创建自定义密钥库:
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 拉取请求。
我们可能会在一周左右的时间内削减另一个版本。