如何使用 Arc Welder 安装证书
How to Install a Certificate With Arc Welder
正在尝试使用 Arc 启动我的应用程序。我的应用程序需要在设备上安装特定证书。通常我通过 Android 设置来做到这一点。如何在 Arc 中安装证书?
谢谢
似乎不可能,所以最终我将证书添加为原始资源,然后使用以下文章,通过代码加载证书:
http://littlesvr.ca/grumble/2014/07/21/android-programming-connect-to-an-https-server-with-self-signed-certificate/
一切正常,现在可以使用证书通过 ARC 运行 应用程序。
以防以后文章下架,这里是相关代码,稍作修改以支持:
protected SSLSocketFactory getCertificateSocketFactory() throws Exception {
InputStream certStrm = context.getResources().openRawResource(R.raw.cert_file)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate ca = cf.generateCertificate(certStrm);
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), null);
return sslContext.getSocketFactory();
}
正在尝试使用 Arc 启动我的应用程序。我的应用程序需要在设备上安装特定证书。通常我通过 Android 设置来做到这一点。如何在 Arc 中安装证书?
谢谢
似乎不可能,所以最终我将证书添加为原始资源,然后使用以下文章,通过代码加载证书: http://littlesvr.ca/grumble/2014/07/21/android-programming-connect-to-an-https-server-with-self-signed-certificate/
一切正常,现在可以使用证书通过 ARC 运行 应用程序。
以防以后文章下架,这里是相关代码,稍作修改以支持:
protected SSLSocketFactory getCertificateSocketFactory() throws Exception {
InputStream certStrm = context.getResources().openRawResource(R.raw.cert_file)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate ca = cf.generateCertificate(certStrm);
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), null);
return sslContext.getSocketFactory();
}